diff --git a/.github/workflows/validate-cg-manifest.sh b/.github/workflows/validate-cg-manifest.sh
index ad4a3592c46..23289c41054 100755
--- a/.github/workflows/validate-cg-manifest.sh
+++ b/.github/workflows/validate-cg-manifest.sh
@@ -44,6 +44,7 @@ ignore_no_source_tarball=" \
kf \
livepatching \
lua-rpm-macros \
+ ocaml-srpm-macros \
opencl-filesystem \
patterns-ceph-containers \
pyproject-rpm-macros \
diff --git a/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md b/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md
index affacecc1d9..fd5cb1df76e 100644
--- a/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md
+++ b/LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md
@@ -1,22 +1,22 @@
-The Azure Linux SPEC files originated from a variety of sources with varying licenses. The changelog for each SPEC file declares provenance for Azure Linux. Some of the SPEC files that originated from other distributions might already have been derived from alternate sources. Their licenses can be found in LICENSE-EXCEPTION.xxx files in this folder.
-
-| Origin | License | Specs |
-| --- | --- | --- |
-| CentOS | [MIT](https://www.centos.org/legal/#licensing-policy) | crash-ptdump-command
delve
fstrm
nodejs-nodemon
rhnlib
rt-setup
rt-tests
rtctl
tuned |
-| Ceph source | [LGPL2.1](https://github.com/ceph/ceph/blob/master/COPYING-LGPL2.1) | ceph |
-| Debian | [MIT](https://opensource.org/licenses/MIT) | prometheus-process-exporter |
-| Fedora | [Fedora MIT License Declaration](https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#License_of_Fedora_SPEC_Files) | a52dec
abseil-cpp
accountsservice
acpica-tools
acpid
adcli
adobe-mappings-cmap
adobe-mappings-pdf
advancecomp
adwaita-icon-theme
afflib
aide
alsa-firmware
alsa-plugins
amtk
amtterm
annobin
ansible-freeipa
archivemount
argparse-manpage
arptables
arpwatch
asio
aspell
aspell-en
at
at-spi2-atk
at-spi2-core
atf
atk
atop
attr
audiofile
augeas
authbind
authd
authselect
autoconf213
avahi
babeltrace
babeltrace2
babl
baekmuk-ttf-fonts
bats
bcache-tools
biosdevname
blosc
bluez
bmake
bogofilter
bolt
boom-boot
booth
botan2
breezy
brotli
buildah
busybox
bwidget
byacc
ca-certificates
cachefilesd
cairomm
calamares
capstone
catatonit
catch
catch1
cdrdao
celt051
cereal
certmonger
cfitsio
cgdcbxd
chan
CharLS
checkpolicy
checksec
chrony
cim-schema
cjkuni-uming-fonts
cjose
ck
cldr-emoji-annotation
clucene
clutter
clutter-gst3
clutter-gtk
cmocka
cogl
collectd
colm
color-filesystem
colord
colorize
compat-lua
compiler-rt
conda
conmon
conntrack-tools
console-setup
container-exception-logger
containernetworking-plugins
convmv
corosync
corosync-qdevice
cpp-hocon
cppcheck
cpprest
cpptest
cpuid
criu
crypto-policies
cryptsetup
cscope
ctags
CUnit
cups
custodia
Cython
dbus-c++
dbus-python
dbxtool
dconf
dcraw
debootstrap
deltarpm
desktop-file-utils
device-mapper-persistent-data
dietlibc
diffstat
ding-libs
discount
distribution-gpg-keys
dleyna-connector-dbus
dleyna-core
dmraid
dnf
dnf-plugins-core
docbook-dtds
docbook-simple
docbook-slides
docbook-style-dsssl
docbook-utils
docbook2X
docbook5-schemas
docbook5-style-xsl
dogtail
dos2unix
dotconf
dovecot
dpdk
dpkg
driverctl
dropwatch
drpm
duktape
dumpet
dvd+rw-tools
dwarves
dwz
dyninst
ebtables
edac-utils
edk2
efax
efi-rpm-macros
egl-wayland
eglexternalplatform
elinks
enca
enchant
enchant2
enscript
environment-modules
evemu
execstack
exempi
exiv2
extra-cmake-modules
fabtests
facter
fakechroot
fakeroot
fapolicyd
fdk-aac-free
fdupes
fence-virt
fetchmail
fftw
filebench
fio
fipscheck
firewalld
flac
flatbuffers
flite
fltk
fmt
fontawesome-fonts
fontawesome4-fonts
fontpackages
fonts-rpm-macros
foomatic-db
freeglut
freeipmi
freeradius
freetds
freexl
fribidi
fros
frr
fsverity-utils
fuse-overlayfs
fuse-sshfs
fuse-zip
fuse3
future
fxload
gavl
gbenchmark
gconf-editor
GConf2
gcovr
gcr
gdal
gdisk
gdk-pixbuf2
generic-logos
genwqe-tools
geoclue2
GeoIP
GeoIP-GeoLite-data
geolite2
geos
gfs2-utils
ghc-srpm-macros
giflib
gl-manpages
glew
glm
glog
glslang
glusterfs
gnome-desktop-testing
gnome-doc-utils
gnome-icon-theme
gnome-keyring
gnu-efi
go-rpm-macros
gom
google-api-python-client
google-crosextra-caladea-fonts
google-crosextra-carlito-fonts
google-guice
google-noto-cjk-fonts
google-noto-emoji-fonts
google-roboto-slab-fonts
gphoto2
gpm
gpsbabel
graphene
graphite2
graphviz
grubby
gsettings-desktop-schemas
gsl
gsm
gspell
gssdp
gssntlmssp
gstreamer1
gstreamer1-plugins-base
gtk-vnc
gtk2
gtk3
gtkspell
gupnp
gupnp-av
gupnp-dlna
gupnp-igd
hardening-check
hdf
hdf5
heimdal
help2man
hexedit
hicolor-icon-theme
hiera
highlight
hivex
hostname
hping3
hsakmt
htop
hunspell
hunspell-af
hunspell-ar
hunspell-as
hunspell-ast
hunspell-az
hunspell-be
hunspell-bg
hunspell-bn
hunspell-br
hunspell-ca
hunspell-cop
hunspell-csb
hunspell-cv
hunspell-cy
hunspell-da
hunspell-de
hunspell-dsb
hunspell-el
hunspell-en
hunspell-eo
hunspell-es
hunspell-et
hunspell-eu
hunspell-fa
hunspell-fj
hunspell-fo
hunspell-fr
hunspell-fur
hunspell-fy
hunspell-ga
hunspell-gd
hunspell-gl
hunspell-grc
hunspell-gu
hunspell-gv
hunspell-haw
hunspell-hi
hunspell-hil
hunspell-hr
hunspell-hsb
hunspell-ht
hunspell-hu
hunspell-hy
hunspell-ia
hunspell-id
hunspell-is
hunspell-it
hunspell-kk
hunspell-km
hunspell-kn
hunspell-ko
hunspell-ku
hunspell-ky
hunspell-la
hunspell-lb
hunspell-ln
hunspell-mai
hunspell-mg
hunspell-mi
hunspell-mk
hunspell-ml
hunspell-mn
hunspell-mos
hunspell-mr
hunspell-ms
hunspell-mt
hunspell-nds
hunspell-ne
hunspell-nl
hunspell-no
hunspell-nr
hunspell-nso
hunspell-ny
hunspell-om
hunspell-or
hunspell-pa
hunspell-pl
hunspell-pt
hunspell-quh
hunspell-ro
hunspell-ru
hunspell-rw
hunspell-se
hunspell-shs
hunspell-si
hunspell-sk
hunspell-sl
hunspell-smj
hunspell-so
hunspell-sq
hunspell-sr
hunspell-sv
hunspell-sw
hunspell-ta
hunspell-te
hunspell-tet
hunspell-th
hunspell-tk
hunspell-tl
hunspell-tn
hunspell-tpi
hunspell-ts
hunspell-uk
hunspell-uz
hunspell-ve
hunspell-vi
hunspell-wa
hunspell-xh
hunspell-yi
hwdata
hwloc
hyperscan
hyperv-daemons
hyphen
hyphen-as
hyphen-bg
hyphen-bn
hyphen-ca
hyphen-da
hyphen-de
hyphen-el
hyphen-es
hyphen-fa
hyphen-fo
hyphen-fr
hyphen-ga
hyphen-gl
hyphen-grc
hyphen-gu
hyphen-hi
hyphen-hsb
hyphen-hu
hyphen-ia
hyphen-id
hyphen-is
hyphen-it
hyphen-kn
hyphen-ku
hyphen-lt
hyphen-mi
hyphen-ml
hyphen-mn
hyphen-mr
hyphen-nl
hyphen-or
hyphen-pa
hyphen-pl
hyphen-pt
hyphen-ro
hyphen-ru
hyphen-sa
hyphen-sk
hyphen-sl
hyphen-sv
hyphen-ta
hyphen-te
hyphen-tk
hyphen-uk
ibus
ibus-chewing
ibus-hangul
ibus-kkc
ibus-libzhuyin
ibus-m17n
ibus-rawcode
ibus-sayura
ibus-table
ibus-table-chinese
icc-profiles-openicc
icon-naming-utils
icoutils
iftop
iio-sensor-proxy
ilmbase
im-chooser
imaptest
imsettings
indent
infinipath-psm
inih
iniparser
intel-cmt-cat
intel-ipsec-mb
ioping
IP2Location
ipa-pgothic-fonts
ipcalc
ipmitool
iprutils
iptraf-ng
iptstate
irssi
iscsi-initiator-utils
isns-utils
iso-codes
isomd5sum
iw
iwd
jabberpy
jakarta-servlet
jasper
javapackages-bootstrap
javapackages-tools
jbigkit
jdom2
jemalloc
jfsutils
jimtcl
jose
js-jquery
jsoncpp
Judy
jurand
kata-containers
kde-filesystem
kde-settings
kexec-tools
keybinder3
keycloak-httpd-client-install
kf
kf-kconfig
kf-kcoreaddons
kf-ki18n
kf-kwidgetsaddons
kpmcore
kronosnet
ksh
kyotocabinet
kyua
ladspa
lame
langtable
lapack
lasso
latencytop
lato-fonts
lcms2
lcov
ldns
leatherman
ledmon
lensfun
leveldb
lftp
libabw
libaec
libao
libappstream-glib
libarrow
libart_lgpl
libasyncns
libatasmart
libavc1394
libblockdev
libbpf
libbsd
libburn
libbytesize
libcacard
libcanberra
libcdio
libcdio-paranoia
libcdr
libcgroup
libchewing
libcli
libcmis
libcmpiutil
libcomps
libcroco
libdaemon
libdap
libdatrie
libdazzle
libdbi
libdbi-drivers
libdbusmenu
libdc1394
libdeflate
libdmx
libdnf
libdrm
libdvdnav
libdvdread
libdwarf
libeasyfc
libecap
libecb
libell
libEMF
libeot
libepoxy
libepubgen
libesmtp
libetonyek
libev
libevdev
libexif
libexttextcat
libfabric
libfontenc
libfreehand
libftdi
libgadu
libgdither
libgee
libgee06
libgeotiff
libgexiv2
libgit2
libgit2-glib
libglade2
libglvnd
libgovirt
libgphoto2
libgsf
libgta
libguestfs
libgusb
libgxim
libgxps
libhangul
libhugetlbfs
libibcommon
libical
libICE
libicns
libid3tag
libIDL
libidn2
libiec61883
libieee1284
libimobiledevice
libindicator
libinput
libiodbc
libipt
libiptcdata
libiscsi
libisoburn
libisofs
libjcat
libkcapi
libkeepalive
libkkc
libkkc-data
libkml
liblangtag
libldb
libldm
liblerc
liblockfile
liblognorm
liblouis
liblqr-1
liblzf
libmad
libmediaart
libmicrohttpd
libmikmod
libmodman
libmodplug
libmodulemd1
libmpcdec
libmspub
libmtp
libmusicbrainz5
libmwaw
libnbd
libnet
libnetfilter_log
libnfs
libnotify
libntlm
libnumbertext
libnvme
liboauth
libodfgen
libofa
libogg
liboggz
liboil
libomxil-bellagio
libopenraw
liboping
libosinfo
libotf
libotr
libpagemaker
libpaper
libpciaccess
libpeas
libpfm
libpinyin
libplist
libpmemobj-cpp
libpng12
libpng15
libproxy
libpsm2
libpwquality
libqb
libqxp
libraqm
LibRaw
libraw1394
libreport
libreswan
librevenge
librsvg2
librx
libsamplerate
libsass
libsecret
libsemanage
libsigc++20
libsigsegv
libslirp
libSM
libsmbios
libsmi
libsndfile
libsodium
libspiro
libsrtp
libssh
libstaroffice
libstemmer
libstoragemgmt
libtdb
libteam
libtevent
libthai
libtnc
libtomcrypt
libtommath
libtpms
libtracecmd
libtraceevent
libtracefs
libtranslit
libucil
libunicap
libuninameslist
liburing
libusbmuxd
libuser
libutempter
libvarlink
libverto
libvirt-dbus
libvirt-glib
libvirt-java
libvirt-python
libvisio
libvisual
libvoikko
libvorbis
libvpx
libwacom
libwnck3
libwpd
libwpe
libwpg
libwps
libwvstreams
libX11
libXau
libXaw
libxcb
libXcomposite
libxcrypt
libXcursor
libXdamage
libXdmcp
libXext
libxfce4util
libXfixes
libXfont2
libXft
libXi
libXinerama
libxkbcommon
libxkbfile
libxklavier
libxmlb
libXmu
libXpm
libXrandr
libXrender
libXres
libXScrnSaver
libxshmfence
libXt
libXtst
libXv
libXxf86vm
libyami
libyang
libyubikey
libzip
libzmf
lilv
linuxconsoletools
linuxptp
lksctp-tools
lldpd
lockdev
logwatch
lpsolve
lrzsz
lua
lua-expat
lua-filesystem
lua-json
lua-lpeg
lua-lunit
lua-rpm-macros
lua-term
luajit
lujavrite
luksmeta
lutok
lv2
lzip
lzop
m17n-db
m17n-lib
mac-robber
mailcap
mailx
malaga
malaga-suomi-voikko
mallard-rng
man-pages-cs
man-pages-es
man-pages-it
man-pages-ja
man-pages-ko
man-pages-pl
man-pages-ru
man-pages-zh-CN
mandoc
mariadb-connector-c
mariadb-connector-odbc
marisa
maven-compiler-plugin
maven-jar-plugin
maven-resolver
maven-resources-plugin
maven-surefire
maven-wagon
mcelog
mcpp
mcstrans
mdadm
mdds
mdevctl
meanwhile
mecab
mecab-ipadic
media-player-info
memcached
memkind
mesa
mesa-libGLU
metis
microcode_ctl
microdnf
minicom
minizip
mksh
mobile-broadband-provider-info
mock
mock-core-configs
mod_auth_gssapi
mod_auth_mellon
mod_auth_openidc
mod_authnz_pam
mod_fcgid
mod_http2
mod_intercept_form_submit
mod_lookup_identity
mod_md
mod_security
mod_security_crs
mod_wsgi
mokutil
mozjs
mpage
mrtg
mstflint
mt-st
mtdev
mtools
mtr
mtx
munge
mutt
mythes
mythes-bg
mythes-ca
mythes-cs
mythes-da
mythes-de
mythes-el
mythes-en
mythes-eo
mythes-es
mythes-fr
mythes-ga
mythes-hu
mythes-mi
mythes-ne
mythes-nl
mythes-pl
mythes-pt
mythes-ro
mythes-ru
mythes-sk
mythes-sl
mythes-sv
mythes-uk
nbd
nbdkit
neon
netavark
netcdf
netcf
netlabel_tools
netpbm
netsniff-ng
nfs4-acl-tools
nftables
nilfs-utils
nkf
nload
nlopt
nodejs-packaging
nss-mdns
nss-pam-ldapd
nss_nis
nss_wrapper
ntfs-3g
ntfs-3g-system-compression
numad
numatop
numpy
nvmetcli
nvml
oath-toolkit
ocaml
ocaml-alcotest
ocaml-astring
ocaml-augeas
ocaml-base
ocaml-bigarray-compat
ocaml-bisect-ppx
ocaml-calendar
ocaml-camlp5
ocaml-camomile
ocaml-cinaps
ocaml-cmdliner
ocaml-compiler-libs-janestreet
ocaml-cppo
ocaml-csexp
ocaml-csv
ocaml-ctypes
ocaml-curses
ocaml-dune
ocaml-extlib
ocaml-fileutils
ocaml-findlib
ocaml-fmt
ocaml-fpath
ocaml-gettext
ocaml-integers
ocaml-libvirt
ocaml-luv
ocaml-lwt
ocaml-markup
ocaml-migrate-parsetree
ocaml-mmap
ocaml-num
ocaml-ocamlbuild
ocaml-ocplib-endian
ocaml-ounit
ocaml-parsexp
ocaml-ppx-derivers
ocaml-ppxlib
ocaml-re
ocaml-react
ocaml-result
ocaml-seq
ocaml-sexplib
ocaml-sexplib0
ocaml-stdio
ocaml-topkg
ocaml-tyxml
ocaml-uuidm
ocaml-uutf
ocaml-xml-light
ocaml-zarith
ocl-icd
oddjob
ogdi
omping
opa
opal
open-vm-tools
openblas
opencc
opencl-filesystem
opencl-headers
opencryptoki
opencsd
opendnssec
OpenEXR
openjade
openjpeg2
openmpi
openobex
openoffice-lv
openrdate
opensc
openslp
opensm
opensp
openssl
openssl-ibmpkcs11
openssl-pkcs11
openwsman
optipng
opus
opusfile
orangefs
ORBit2
orc
os-prober
osinfo-db
osinfo-db-tools
overpass-fonts
p11-kit
p7zip
pacemaker
pacrunner
pakchois
pam_krb5
pam_wrapper
papi
paps
parallel
patchelf
patchutils
pbzip2
pcp
pcsc-lite
pcsc-lite-ccid
PEGTL
perl
perl-Algorithm-C3
perl-Algorithm-Diff
perl-Alien-Build
perl-Alien-pkgconf
perl-AnyEvent
perl-AnyEvent-AIO
perl-AnyEvent-BDB
perl-App-cpanminus
perl-App-FatPacker
perl-AppConfig
perl-Archive-Extract
perl-Archive-Zip
perl-Authen-SASL
perl-B-COW
perl-B-Debug
perl-B-Hooks-EndOfScope
perl-B-Hooks-OP-Check
perl-B-Keywords
perl-B-Lint
perl-bareword-filehandles
perl-BDB
perl-Bit-Vector
perl-boolean
perl-Browser-Open
perl-BSD-Resource
perl-Business-ISBN
perl-Business-ISBN-Data
perl-Bytes-Random-Secure
perl-Capture-Tiny
perl-Carp-Clan
perl-CBOR-XS
perl-Class-Accessor
perl-Class-C3
perl-Class-C3-XS
perl-Class-Data-Inheritable
perl-Class-Factory-Util
perl-Class-Inspector
perl-Class-ISA
perl-Class-Load
perl-Class-Load-XS
perl-Class-Method-Modifiers
perl-Class-Singleton
perl-Class-Tiny
perl-Class-XSAccessor
perl-Clone
perl-Color-ANSI-Util
perl-Color-RGB-Util
perl-ColorThemeBase-Static
perl-ColorThemeRole-ANSI
perl-ColorThemes-Standard
perl-ColorThemeUtil-ANSI
perl-Compress-Bzip2
perl-Compress-LZF
perl-Compress-Raw-Lzma
perl-Config-AutoConf
perl-Config-INI
perl-Config-INI-Reader-Multiline
perl-Config-IniFiles
perl-Config-Simple
perl-Config-Tiny
perl-Const-Fast
perl-Convert-ASN1
perl-Convert-Bencode
perl-Coro
perl-Coro-Multicore
perl-CPAN-Changes
perl-CPAN-DistnameInfo
perl-CPAN-Meta-Check
perl-Cpanel-JSON-XS
perl-Crypt-CBC
perl-Crypt-DES
perl-Crypt-IDEA
perl-Crypt-OpenSSL-Bignum
perl-Crypt-OpenSSL-Guess
perl-Crypt-OpenSSL-Random
perl-Crypt-OpenSSL-RSA
perl-Crypt-PasswdMD5
perl-Crypt-Random-Seed
perl-CSS-Tiny
perl-Data-Dump
perl-Data-Munge
perl-Data-OptList
perl-Data-Peek
perl-Data-Section
perl-Data-UUID
perl-Date-Calc
perl-Date-ISO8601
perl-Date-Manip
perl-DateTime
perl-DateTime-Format-Builder
perl-DateTime-Format-DateParse
perl-DateTime-Format-HTTP
perl-DateTime-Format-IBeat
perl-DateTime-Format-ISO8601
perl-DateTime-Format-Mail
perl-DateTime-Format-Strptime
perl-DateTime-Locale
perl-DateTime-TimeZone
perl-DateTime-TimeZone-SystemV
perl-DateTime-TimeZone-Tzfile
perl-DBD-MySQL
perl-Devel-CallChecker
perl-Devel-Caller
perl-Devel-CheckBin
perl-Devel-CheckLib
perl-Devel-Cycle
perl-Devel-EnforceEncapsulation
perl-Devel-GlobalDestruction
perl-Devel-GlobalDestruction-XS
perl-Devel-Hide
perl-Devel-Leak
perl-Devel-LexAlias
perl-Devel-Size
perl-Devel-StackTrace
perl-Devel-Symdump
perl-Digest-BubbleBabble
perl-Digest-CRC
perl-Digest-HMAC
perl-Digest-SHA1
perl-Dist-CheckConflicts
perl-DynaLoader-Functions
perl-Email-Address
perl-Email-Date-Format
perl-Encode-Detect
perl-Encode-EUCJPASCII
perl-Encode-IMAPUTF7
perl-Encode-Locale
perl-Env-ShellWords
perl-Error
perl-EV
perl-Eval-Closure
perl-Event
perl-Exception-Class
perl-Expect
perl-ExtUtils-Config
perl-ExtUtils-Depends
perl-ExtUtils-Helpers
perl-ExtUtils-InstallPaths
perl-ExtUtils-PkgConfig
perl-FCGI
perl-Fedora-VSP
perl-FFI-CheckLib
perl-File-BaseDir
perl-File-BOM
perl-File-chdir
perl-File-CheckTree
perl-File-Copy-Recursive
perl-File-DesktopEntry
perl-File-Find-Object
perl-File-Find-Object-Rule
perl-File-Find-Rule
perl-File-Find-Rule-Perl
perl-File-Inplace
perl-File-Listing
perl-File-MimeInfo
perl-File-pushd
perl-File-ReadBackwards
perl-File-Remove
perl-File-ShareDir
perl-File-ShareDir-Install
perl-File-Slurp
perl-File-Slurp-Tiny
perl-File-Slurper
perl-File-Type
perl-Font-TTF
perl-FreezeThaw
perl-GD
perl-GD-Barcode
perl-generators
perl-Getopt-ArgvFile
perl-gettext
perl-Graphics-ColorNamesLite-WWW
perl-GSSAPI
perl-Guard
perl-Hook-LexWrap
perl-HTML-Parser
perl-HTML-Tagset
perl-HTML-Tree
perl-HTTP-Cookies
perl-HTTP-Daemon
perl-HTTP-Date
perl-HTTP-Message
perl-HTTP-Negotiate
perl-Image-Base
perl-Image-Info
perl-Image-Xbm
perl-Image-Xpm
perl-Import-Into
perl-Importer
perl-inc-latest
perl-indirect
perl-Inline-Files
perl-IO-AIO
perl-IO-All
perl-IO-CaptureOutput
perl-IO-Compress-Lzma
perl-IO-HTML
perl-IO-Multiplex
perl-IO-SessionData
perl-IO-Socket-INET6
perl-IO-String
perl-IO-stringy
perl-IO-Tty
perl-IPC-Run
perl-IPC-Run3
perl-IPC-System-Simple
perl-JSON
perl-JSON-Color
perl-JSON-MaybeXS
perl-LDAP
perl-libnet
perl-libwww-perl
perl-libxml-perl
perl-Lingua-EN-Inflect
perl-List-MoreUtils-XS
perl-local-lib
perl-Locale-Codes
perl-Locale-Maketext-Gettext
perl-Locale-Msgfmt
perl-Locale-PO
perl-Log-Message
perl-Log-Message-Simple
perl-LWP-MediaTypes
perl-LWP-Protocol-https
perl-Mail-AuthenticationResults
perl-Mail-DKIM
perl-Mail-IMAPTalk
perl-Mail-SPF
perl-MailTools
perl-Math-Int64
perl-Math-Random-ISAAC
perl-MIME-Charset
perl-MIME-Lite
perl-MIME-Types
perl-Mixin-Linewise
perl-MLDBM
perl-Mock-Config
perl-Module-Build-Tiny
perl-Module-CPANfile
perl-Module-Implementation
perl-Module-Install-AuthorRequires
perl-Module-Install-AuthorTests
perl-Module-Install-AutoLicense
perl-Module-Install-GithubMeta
perl-Module-Install-ManifestSkip
perl-Module-Install-ReadmeFromPod
perl-Module-Install-ReadmeMarkdownFromPod
perl-Module-Install-Repository
perl-Module-Install-TestBase
perl-Module-Load-Util
perl-Module-Manifest
perl-Module-Manifest-Skip
perl-Module-Package
perl-Module-Package-Au
perl-Module-Pluggable
perl-Module-Runtime
perl-Module-Signature
perl-Mojolicious
perl-Moo
perl-Mozilla-CA
perl-Mozilla-LDAP
perl-MRO-Compat
perl-multidimensional
perl-namespace-autoclean
perl-namespace-clean
perl-Net-CIDR-Lite
perl-Net-Daemon
perl-Net-DNS
perl-Net-DNS-Resolver-Mock
perl-Net-DNS-Resolver-Programmable
perl-Net-HTTP
perl-Net-IMAP-Simple
perl-Net-IMAP-Simple-SSL
perl-Net-IP
perl-Net-LibIDN2
perl-Net-Patricia
perl-Net-SMTP-SSL
perl-Net-SNMP
perl-Net-Telnet
perl-Newt
perl-NNTPClient
perl-NTLM
perl-Number-Compare
perl-Object-Deadly
perl-Object-HashBase
perl-Package-Anon
perl-Package-Constants
perl-Package-DeprecationManager
perl-Package-Generator
perl-Package-Stash
perl-Package-Stash-XS
perl-PadWalker
perl-Paper-Specs
perl-PAR-Dist
perl-Parallel-Iterator
perl-Params-Classify
perl-Params-Util
perl-Params-Validate
perl-Params-ValidationCompiler
perl-Parse-PMFile
perl-Parse-RecDescent
perl-Parse-Yapp
perl-Path-Tiny
perl-Perl-Critic
perl-Perl-Critic-More
perl-Perl-Destruct-Level
perl-Perl-MinimumVersion
perl-Perl4-CoreLibs
perl-PerlIO-gzip
perl-PerlIO-utf8_strict
perl-PkgConfig-LibPkgConf
perl-Pod-Coverage
perl-Pod-Coverage-TrustPod
perl-Pod-Escapes
perl-Pod-Eventual
perl-Pod-LaTeX
perl-Pod-Markdown
perl-Pod-Parser
perl-Pod-Plainer
perl-Pod-POM
perl-Pod-Spell
perl-PPI
perl-PPI-HTML
perl-PPIx-QuoteLike
perl-PPIx-Regexp
perl-PPIx-Utilities
perl-prefork
perl-Probe-Perl
perl-Razor-Agent
perl-Readonly
perl-Readonly-XS
perl-Ref-Util
perl-Ref-Util-XS
perl-Regexp-Pattern-Perl
perl-Return-MultiLevel
perl-Role-Tiny
perl-Scope-Guard
perl-Scope-Upper
perl-SGMLSpm
perl-SNMP_Session
perl-Socket6
perl-Software-License
perl-Sort-Versions
perl-Specio
perl-Spiffy
perl-strictures
perl-String-CRC32
perl-String-Format
perl-String-ShellQuote
perl-String-Similarity
perl-Sub-Exporter
perl-Sub-Exporter-Progressive
perl-Sub-Identify
perl-Sub-Info
perl-Sub-Install
perl-Sub-Name
perl-Sub-Quote
perl-Sub-Uplevel
perl-SUPER
perl-Switch
perl-Syntax-Highlight-Engine-Kate
perl-Sys-CPU
perl-Sys-MemInfo
perl-Sys-Virt
perl-Taint-Runtime
perl-Task-Weaken
perl-Term-Size-Any
perl-Term-Size-Perl
perl-Term-Table
perl-Term-UI
perl-TermReadKey
perl-Test-Base
perl-Test-ClassAPI
perl-Test-CPAN-Meta
perl-Test-CPAN-Meta-JSON
perl-Test-Deep
perl-Test-Differences
perl-Test-DistManifest
perl-Test-Distribution
perl-Test-EOL
perl-Test-Exception
perl-Test-Exit
perl-Test-FailWarnings
perl-Test-Fatal
perl-Test-File
perl-Test-File-ShareDir
perl-Test-Harness
perl-Test-HasVersion
perl-Test-InDistDir
perl-Test-Inter
perl-Test-LeakTrace
perl-Test-LongString
perl-Test-Manifest
perl-Test-Memory-Cycle
perl-Test-MinimumVersion
perl-Test-MockObject
perl-Test-MockRandom
perl-Test-Needs
perl-Test-NoTabs
perl-Test-NoWarnings
perl-Test-Object
perl-Test-Output
perl-Test-Pod
perl-Test-Pod-Coverage
perl-Test-Portability-Files
perl-Test-Requires
perl-Test-RequiresInternet
perl-Test-Script
perl-Test-Simple
perl-Test-SubCalls
perl-Test-Synopsis
perl-Test-Taint
perl-Test-TrailingSpace
perl-Test-utf8
perl-Test-Vars
perl-Test-Warn
perl-Test-Without-Module
perl-Test2-Plugin-NoWarnings
perl-Test2-Suite
perl-Test2-Tools-Explain
perl-Text-CharWidth
perl-Text-CSV_XS
perl-Text-Diff
perl-Text-Glob
perl-Text-Iconv
perl-Text-Soundex
perl-Text-Unidecode
perl-Text-WrapI18N
perl-Tie-IxHash
perl-TimeDate
perl-Tree-DAG_Node
perl-Unicode-EastAsianWidth
perl-Unicode-LineBreak
perl-Unicode-Map8
perl-Unicode-String
perl-Unicode-UTF8
perl-UNIVERSAL-can
perl-UNIVERSAL-isa
perl-Unix-Syslog
perl-URI
perl-Variable-Magic
perl-Version-Requirements
perl-WWW-RobotRules
perl-XML-Catalog
perl-XML-DOM
perl-XML-Dumper
perl-XML-Filter-BufferText
perl-XML-Generator
perl-XML-Grove
perl-XML-Handler-YAWriter
perl-XML-LibXML
perl-XML-LibXSLT
perl-XML-NamespaceSupport
perl-XML-Parser-Lite
perl-XML-RegExp
perl-XML-SAX
perl-XML-SAX-Base
perl-XML-SAX-Writer
perl-XML-Simple
perl-XML-TokeParser
perl-XML-TreeBuilder
perl-XML-Twig
perl-XML-Writer
perl-XML-XPath
perl-XML-XPathEngine
perl-XString
perl-YAML-LibYAML
perl-YAML-PP
perl-YAML-Syck
perltidy
pesign
phodav
php
php-pear
php-pecl-zip
physfs
picosat
pinfo
pipewire
pixman
pkcs11-helper
pkgconf
plexus-cipher
plexus-containers
plexus-sec-dispatcher
plotutils
pmdk-convert
pmix
pngcrush
pngnq
po4a
podman
poetry
policycoreutils
polkit-pkla-compat
polkit-qt-1
portreserve
postfix
potrace
powertop
ppp
pps-tools
pptp
priv_wrapper
procmail
prometheus
prometheus-node-exporter
ps_mem
psacct
psutils
ptlib
publicsuffix-list
pugixml
pulseaudio
puppet
pwgen
pyatspi
pybind11
pycairo
pyelftools
pyflakes
pygobject3
PyGreSQL
pykickstart
pylint
pyparted
pyproject-rpm-macros
pyserial
python-absl-py
python-aiodns
python-aiohttp
python-alsa
python-argcomplete
python-astroid
python-astunparse
python-async-generator
python-augeas
python-azure-sdk
python-beautifulsoup4
python-betamax
python-blinker
python-blivet
python-cached_property
python-charset-normalizer
python-cheetah
python-click
python-cmd2
python-colorama
python-CommonMark
python-conda-package-handling
python-configshell
python-cpuinfo
python-cups
python-curio
python-cytoolz
python-d2to1
python-dbus-client-gen
python-dbus-python-client-gen
python-dbus-signature-pyparsing
python-dbusmock
python-ddt
python-debtcollector
python-decorator
python-distlib
python-dmidecode
python-dns
python-dtopt
python-dulwich
python-editables
python-enchant
python-entrypoints
python-ethtool
python-evdev
python-extras
python-faker
python-fasteners
python-fastjsonschema
python-fields
python-filelock
python-fixtures
python-flake8
python-flask
python-flit
python-flit-core
python-fluidity-sm
python-frozendict
python-funcsigs
python-gast
python-genshi
python-google-auth
python-google-auth-oauthlib
python-greenlet
python-gssapi
python-h5py
python-hatch-fancy-pypi-readme
python-hatch-vcs
python-hatchling
python-hs-dbus-signature
python-html5lib
python-httplib2
python-humanize
python-hwdata
python-importlib-metadata
python-inotify
python-into-dbus-python
python-IPy
python-iso8601
python-isodate
python-isort
python-itsdangerous
python-justbases
python-justbytes
python-jwcrypto
python-jwt
python-kdcproxy
python-kerberos
python-kmod
python-kubernetes
python-lark
python-lazy-object-proxy
python-ldap
python-linux-procfs
python-lit
python-looseversion
python-markdown
python-markdown-it-py
python-mccabe
python-mdurl
python-memcached
python-mimeparse
python-mock
python-monotonic
python-more-itertools
python-mpmath
python-msal
python-msrestazure
python-mutagen
python-networkx
python-nose2
python-ntlm-auth
python-oauth2client
python-openpyxl
python-openstackdocstheme
python-oslo-i18n
python-oslo-sphinx
python-paramiko
python-pathspec
python-pefile
python-pexpect
python-pkgconfig
python-platformdirs
python-pluggy
python-podman-api
python-poetry-core
python-process-tests
python-productmd
python-ptyprocess
python-pycares
python-pycosat
python-pydbus
python-pymongo
python-PyMySQL
python-pyperclip
python-pyroute2
python-pyrsistent
python-pysocks
python-pytest-benchmark
python-pytest-cov
python-pytest-expect
python-pytest-flake8
python-pytest-flakes
python-pytest-forked
python-pytest-mock
python-pytest-relaxed
python-pytest-runner
python-pytest-subtests
python-pytest-timeout
python-pytest-xdist
python-pytoml
python-pyudev
python-pywbem
python-qrcode
python-rdflib
python-recommonmark
python-requests-file
python-requests-ftp
python-requests-kerberos
python-requests-mock
python-requests-oauthlib
python-requests-toolbelt
python-requests_ntlm
python-responses
python-retrying
python-rfc3986
python-rich
python-rpm-generators
python-rpmfluff
python-rtslib
python-ruamel-yaml
python-ruamel-yaml-clib
python-s3transfer
python-schedutils
python-semantic_version
python-should_dsl
python-simpleline
python-slip
python-sniffio
python-sortedcontainers
python-soupsieve
python-sphinx
python-sphinx-epytext
python-sphinx-theme-py3doc-enhanced
python-sphinx_rtd_theme
python-sphinxcontrib-apidoc
python-sphinxcontrib-applehelp
python-sphinxcontrib-devhelp
python-sphinxcontrib-htmlhelp
python-sphinxcontrib-httpdomain
python-sphinxcontrib-jsmath
python-sphinxcontrib-qthelp
python-sphinxcontrib-serializinghtml
python-sqlalchemy
python-suds
python-systemd
python-tempita
python-templated-dictionary
python-termcolor
python-testpath
python-testresources
python-testscenarios
python-testtools
python-tidy
python-toml
python-tomli
python-toolz
python-tornado
python-tox
python-tox-current-env
python-tqdm
python-trio
python-trove-classifiers
python-typing-extensions
python-uamqp
python-unittest2
python-uritemplate
python-urwid
python-varlink
python-versioneer
python-virt-firmware
python-voluptuous
python-waitress
python-webencodings
python-webtest
python-wheel
python-whoosh
python-winrm
python-wrapt
python-xmltodict
python-yubico
python-zipp
python-zmq
python-zstd
python3-mallard-ducktype
python3-pytest-asyncio
python3-typed_ast
pyusb
pywbem
pyxattr
qemu
qhull
qpdf
qperf
qr-code-generator
qt-rpm-macros
qt5-qtconnectivity
qt5-qtsensors
qt5-qtserialport
qtbase
qtdeclarative
qtsvg
qttools
quagga
quota
radvd
ragel
raptor2
rarian
rasdaemon
rasqal
rcs
rdist
rdma-core
re2
re2c
realmd
rear
recode
redland
resource-agents
rest
rhash
rlwrap
rp-pppoe
rpm-mpi-hooks
rpmdevtools
rpmlint
rtkit
rtl-sdr
ruby-augeas
rubygem-bson
rubygem-coderay
rubygem-diff-lcs
rubygem-flexmock
rubygem-hpricot
rubygem-introspection
rubygem-liquid
rubygem-maruku
rubygem-metaclass
rubygem-mongo
rubygem-mustache
rubygem-mysql2
rubygem-pkg-config
rubygem-rake
rubygem-rake-compiler
rubygem-ronn
rubygem-rouge
rubygem-rspec
rubygem-rspec-expectations
rubygem-rspec-mocks
rubygem-rspec-support
rubygem-thread_order
rusers
rust-cbindgen
samba
sanlock
sassist
satyr
sbc
sblim-cim-client2
sblim-cmpi-base
sblim-cmpi-devel
sblim-cmpi-fsvol
sblim-cmpi-network
sblim-cmpi-nfsv3
sblim-cmpi-nfsv4
sblim-cmpi-params
sblim-cmpi-sysfs
sblim-cmpi-syslog
sblim-indication_helper
sblim-sfcb
sblim-sfcc
sblim-sfcCommon
sblim-testsuite
sblim-wbemcli
scl-utils
scotch
screen
scrub
SDL
SDL2
SDL_sound
sdparm
seabios
secilc
selinux-policy
sendmail
serd
setools
setserial
setuptool
sgabios
sgml-common
sgpio
shared-mime-info
sharutils
sip
sisu
skkdic
sleuthkit
slirp4netns
smartmontools
smc-tools
socket_wrapper
softhsm
sombok
sord
sos
sound-theme-freedesktop
soundtouch
sox
soxr
sparsehash
spausedd
speex
speexdsp
spice-protocol
spice-vdagent
spirv-headers
spirv-tools
splix
squashfs-tools
squid
sratom
sscg
star
startup-notification
stunnel
subscription-manager
suitesparse
SuperLU
supermin
switcheroo-control
swtpm
symlinks
sympy
sysfsutils
systemd
systemd-bootchart
t1lib
t1utils
taglib
tang
targetcli
tbb
tcl-pgtcl
tclx
teckit
telnet
thrift
tidy
time
tini
tinycdb
tix
tk
tlog
tmpwatch
tn5250
tofrodos
tokyocabinet
trace-cmd
tss2
ttembed
ttmkfdir
tuna
twolame
uchardet
uclibc-ng
ucpp
ucs-miscfixed-fonts
ucx
udftools
udica
udisks2
uglify-js
uid_wrapper
unicode-emoji
unicode-ucd
unique3
units
upower
uriparser
urlview
usb_modeswitch
usb_modeswitch-data
usbguard
usbip
usbmuxd
usbredir
usermode
ustr
uthash
uuid
uw-imap
v4l-utils
vhostmd
vino
virglrenderer
virt-p2v
virt-top
virt-what
virt-who
vitess
vmem
volume_key
vorbis-tools
vte291
vulkan-headers
vulkan-loader
watchdog
wavpack
wayland
wayland-protocols
web-assets
webrtc-audio-processing
websocketpp
wget
whois
wireguard-tools
wireless-regdb
wireshark
woff2
wordnet
words
wpebackend-fdo
wsmancli
wvdial
x3270
xapian-core
Xaw3d
xcb-proto
xcb-util
xcb-util-image
xcb-util-keysyms
xcb-util-renderutil
xcb-util-wm
xdelta
xdg-dbus-proxy
xdg-utils
xdp-tools
xerces-c
xfconf
xfsdump
xhtml1-dtds
xkeyboard-config
xmlstarlet
xmltoman
xmvn
xorg-x11-apps
xorg-x11-drv-libinput
xorg-x11-font-utils
xorg-x11-fonts
xorg-x11-proto-devel
xorg-x11-server
xorg-x11-server-utils
xorg-x11-util-macros
xorg-x11-utils
xorg-x11-xauth
xorg-x11-xbitmaps
xorg-x11-xinit
xorg-x11-xkb-utils
xorg-x11-xtrans-devel
xrestop
xterm
xxhash
yajl
yaml-cpp
yasm
yelp-tools
yelp-xsl
ykclient
yp-tools
ypbind
ypserv
z3
zenity
zerofree
zfs-fuse
zipper
zopfli
zziplib |
-| Fedora (Copyright Remi Collet) | [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode) | libmemcached-awesome
librabbitmq |
-| Fedora (ISC) | [ISC License](https://github.com/sarugaku/resolvelib/blob/main/LICENSE) | python-resolvelib |
-| Magnus Edenhill Open Source | [Magnus Edenhill Open Source BSD License](https://github.com/jemalloc/jemalloc/blob/dev/COPYING) | librdkafka |
-| Microsoft | [Microsoft MIT License](/LICENSES-AND-NOTICES/LICENSE.md) | application-gateway-kubernetes-ingress
asc
azcopy
azure-iot-sdk-c
azure-nvme-utils
azure-storage-cpp
azurelinux-release
azurelinux-repos
azurelinux-rpm-macros
azurelinux-sysinfo
bazel
blobfuse2
bmon
bpftrace
ccache
cert-manager
cf-cli
check-restart
clamav
cloud-hypervisor
cmake-fedora
containerd
coredns
dcos-cli
debugedit
dejavu-fonts
distroless-packages
docker-buildx
docker-cli
docker-compose
doxygen
dtc
elixir
espeak-ng
espeakup
flannel
fluent-bit
freefont
gflags
gh
go-md2man
grpc
grub2-efi-binary-signed
GSL
gtk-update-icon-cache
helm
hvloader
ig
intel-pf-bb-config
ivykis
jsonbuilder
jx
kata-containers-cc
kata-packages-uvm
keda
keras
kernel-signed
kpatch
kube-vip-cloud-provider
kubernetes
libacvp
libconfini
libconfuse
libgdiplus
libmaxminddb
libmetalink
libsafec
libuv
libxml++
lld
local-path-provisioner
lsb-release
ltp
lttng-consume
mm-common
moby-containerd-cc
moby-engine
msgpack
ncompress
networkd-dispatcher
nlohmann-json
nmap
node-problem-detector
ntopng
opentelemetry-cpp
packer
pcaudiolib
pcre2
perl-Test-Warnings
perl-Text-Template
pigz
prebuilt-ca-certificates
prebuilt-ca-certificates-base
prometheus-adapter
python-cachetools
python-cherrypy
python-cstruct
python-execnet
python-google-pasta
python-libclang
python-libevdev
python-logutils
python-ml-dtypes
python-namex
python-nocasedict
python-opt-einsum
python-optree
python-pecan
python-pip
python-pyrpm
python-remoto
python-repoze-lru
python-routes
python-rsa
python-setuptools
python-sphinxcontrib-websupport
python-tensorboard
python-tensorboard-plugin-wit
python-yamlloader
R
rabbitmq-server
rocksdb
rubygem-addressable
rubygem-asciidoctor
rubygem-async
rubygem-async-http
rubygem-async-io
rubygem-async-pool
rubygem-bindata
rubygem-concurrent-ruby
rubygem-connection_pool
rubygem-console
rubygem-cool.io
rubygem-deep_merge
rubygem-digest-crc
rubygem-elastic-transport
rubygem-elasticsearch
rubygem-elasticsearch-api
rubygem-eventmachine
rubygem-excon
rubygem-faraday
rubygem-faraday-em_http
rubygem-faraday-em_synchrony
rubygem-faraday-excon
rubygem-faraday-httpclient
rubygem-faraday-multipart
rubygem-faraday-net_http
rubygem-faraday-net_http_persistent
rubygem-faraday-patron
rubygem-faraday-rack
rubygem-faraday-retry
rubygem-ffi
rubygem-fiber-local
rubygem-fluent-config-regexp-type
rubygem-fluent-logger
rubygem-fluent-plugin-elasticsearch
rubygem-fluent-plugin-kafka
rubygem-fluent-plugin-prometheus
rubygem-fluent-plugin-prometheus_pushgateway
rubygem-fluent-plugin-record-modifier
rubygem-fluent-plugin-rewrite-tag-filter
rubygem-fluent-plugin-systemd
rubygem-fluent-plugin-webhdfs
rubygem-fluent-plugin-windows-exporter
rubygem-fluentd
rubygem-hirb
rubygem-hocon
rubygem-hoe
rubygem-http_parser
rubygem-httpclient
rubygem-io-event
rubygem-jmespath
rubygem-ltsv
rubygem-mini_portile2
rubygem-minitest
rubygem-mocha
rubygem-msgpack
rubygem-multi_json
rubygem-multipart-post
rubygem-net-http-persistent
rubygem-nio4r
rubygem-nokogiri
rubygem-oj
rubygem-parallel
rubygem-power_assert
rubygem-prometheus-client
rubygem-protocol-hpack
rubygem-protocol-http
rubygem-protocol-http1
rubygem-protocol-http2
rubygem-public_suffix
rubygem-puppet-resource_api
rubygem-rdiscount
rubygem-rdkafka
rubygem-rexml
rubygem-ruby-kafka
rubygem-ruby-progressbar
rubygem-rubyzip
rubygem-semantic_puppet
rubygem-serverengine
rubygem-sigdump
rubygem-strptime
rubygem-systemd-journal
rubygem-test-unit
rubygem-thor
rubygem-timers
rubygem-tzinfo
rubygem-tzinfo-data
rubygem-webhdfs
rubygem-webrick
rubygem-yajl-ruby
rubygem-zip-zip
runc
sdbus-cpp
sgx-backwards-compatibility
shim
shim-unsigned
shim-unsigned-aarch64
shim-unsigned-x64
skopeo
span-lite
sriov-network-device-plugin
SymCrypt
SymCrypt-OpenSSL
tensorflow
tinyxml2
toml11
tracelogging
umoci
usrsctp
vala
verity-read-only-root
vnstat
zstd |
-| Netplan source | [GPLv3](https://github.com/canonical/netplan/blob/main/COPYING) | netplan |
-| Numad source | [LGPLv2 License](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt) | numad |
-| NVIDIA | [ASL 2.0 License and spec specific licenses](http://www.apache.org/licenses/LICENSE-2.0) | libnvidia-container
mlnx-tools
mlx-bootctl
nvidia-container-toolkit
ofed-scripts
perftest |
-| OpenEuler | [BSD-3 License](https://github.com/pytorch/pytorch/blob/master/LICENSE) | pytorch |
-| OpenMamba | [Openmamba GPLv2 License](https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt) | bash-completion |
-| OpenSUSE | Following [openSUSE guidelines](https://en.opensuse.org/openSUSE:Specfile_guidelines#Specfile_Licensing) | ant
ant-junit
antlr
aopalliance
apache-commons-beanutils
apache-commons-cli
apache-commons-codec
apache-commons-collections
apache-commons-collections4
apache-commons-compress
apache-commons-daemon
apache-commons-dbcp
apache-commons-digester
apache-commons-httpclient
apache-commons-io
apache-commons-jexl
apache-commons-lang
apache-commons-lang3
apache-commons-logging
apache-commons-net
apache-commons-pool
apache-commons-pool2
apache-commons-validator
apache-commons-vfs2
apache-parent
args4j
atinject
base64coder
bcel
bea-stax
beust-jcommander
bsf
byaccj
cal10n
cdparanoia
cglib
cni
containerized-data-importer
cpulimit
cri-o
ecj
fillup
flux
gd
geronimo-specs
glassfish-annotation-api
gnu-getopt
gnu-regexp
golang-packaging
guava
guava20
hamcrest
hawtjni-runtime
httpcomponents-core
influx-cli
influxdb
isorelax
jakarta-taglibs-standard
jansi
jarjar
java-cup
java-cup-bootstrap
javacc
javacc-bootstrap
javassist
jboss-interceptors-1.2-api
jdepend
jflex
jflex-bootstrap
jlex
jline
jna
jsch
jsoup
jsr-305
jtidy
junit
junitperf
jzlib
kubevirt
kured
libcontainers-common
libtheora
libva
libvdpau
lynx
maven-parent
multus
objectweb-anttask
objectweb-asm
objenesis
oro
osgi-annotation
osgi-compendium
osgi-core
patterns-ceph-containers
plexus-classworlds
plexus-interpolation
plexus-pom
plexus-utils
proj
psl-make-dafsa
publicsuffix
qdox
regexp
relaxngDatatype
rhino
ripgrep
servletapi4
servletapi5
shapelib
slf4j
trilead-ssh2
virtiofsd
xalan-j2
xbean
xcursor-themes
xerces-j2
xml-commons-apis
xml-commons-resolver
xmldb-api
xmlrpc-c
xmlunit
xpp2
xpp3
xz-java |
-| Photon | [Photon License](LICENSE-PHOTON.md) and [Photon Notice](NOTICE.APACHE2).
Also see [LICENSE-EXCEPTIONS.PHOTON](LICENSE-EXCEPTIONS.PHOTON). | acl
alsa-lib
alsa-utils
ansible
apr
apr-util
asciidoc
atftp
audit
autoconf
autoconf-archive
autofs
autogen
automake
babel
bash
bc
bcc
bind
binutils
bison
blktrace
boost
btrfs-progs
bubblewrap
build-essential
bzip2
c-ares
cairo
cassandra
cdrkit
check
chkconfig
chrpath
cifs-utils
clang
cloud-init
cloud-utils-growpart
cmake
cni-plugins
core-packages
coreutils
cpio
cppunit
cracklib
crash
crash-gcore-command
createrepo_c
cri-tools
cronie
curl
cyrus-sasl
cyrus-sasl-bootstrap
dbus
dbus-glib
dejagnu
device-mapper-multipath
dhcp
dialog
diffutils
dkms
dmidecode
dnsmasq
docbook-dtd-xml
docbook-style-xsl
dosfstools
dracut
dstat
e2fsprogs
ed
efibootmgr
efivar
elfutils
emacs
erlang
etcd
ethtool
expat
expect
fcgi
file
filesystem
findutils
flex
fontconfig
fping
freetype
fuse
gawk
gc
gcc
gdb
gdbm
gettext
git
git-lfs
glib
glib-networking
glibc
glibmm
glide
gmp
gnome-common
gnupg2
gnuplot
gnutls
gobject-introspection
golang
gperf
gperftools
gpgme
gptfdisk
grep
groff
grub2
gtest
gtk-doc
guile
gzip
haproxy
harfbuzz
haveged
hdparm
http-parser
httpd
i2c-tools
iana-etc
icu
initramfs
initscripts
inotify-tools
intltool
iotop
iperf3
iproute
ipset
iptables
iputils
ipvsadm
ipxe
irqbalance
itstool
jansson
jq
json-c
json-glib
kbd
keepalived
kernel
kernel-headers
kernel-mshv
kernel-rt
kernel-uvm
keyutils
kmod
krb5
less
libaio
libarchive
libassuan
libatomic_ops
libcap
libcap-ng
libconfig
libdb
libdnet
libedit
libestr
libevent
libfastjson
libffi
libgcrypt
libgpg-error
libgssglue
libgudev
libjpeg-turbo
libksba
liblogging
libmbim
libmnl
libmodulemd
libmpc
libmspack
libndp
libnetfilter_conntrack
libnetfilter_cthelper
libnetfilter_cttimeout
libnetfilter_queue
libnfnetlink
libnftnl
libnl3
libnsl2
libpcap
libpipeline
libpng
libpsl
libqmi
librelp
librepo
librsync
libseccomp
libselinux
libsepol
libserf
libsigc++30
libsolv
libsoup
libssh2
libtalloc
libtar
libtasn1
libtiff
libtirpc
libtool
libunistring
libunwind
libusb
libvirt
libwebp
libxml2
libxslt
libyaml
linux-firmware
lldb
lldpad
llvm
lm-sensors
lmdb
log4cpp
logrotate
lshw
lsof
lsscsi
ltrace
lttng-tools
lttng-ust
lvm2
lz4
lzo
m2crypto
m4
make
man-db
man-pages
mariadb
maven
mc
mercurial
meson
mlocate
ModemManager
mpfr
msr-tools
mysql
nano
nasm
ncurses
ndctl
net-snmp
net-tools
nettle
newt
nfs-utils
nghttp2
nginx
ninja-build
nodejs
npth
nspr
nss
nss-altfiles
ntp
numactl
nvme-cli
oniguruma
OpenIPMI
openldap
openscap
openssh
openvswitch
ostree
pam
pango
parted
patch
pciutils
perl-Canary-Stability
perl-CGI
perl-common-sense
perl-Crypt-SSLeay
perl-DBD-SQLite
perl-DBI
perl-DBIx-Simple
perl-Exporter-Tiny
perl-File-HomeDir
perl-File-Which
perl-IO-Socket-SSL
perl-JSON-Any
perl-JSON-XS
perl-libintl-perl
perl-List-MoreUtils
perl-Module-Build
perl-Module-Install
perl-Module-ScanDeps
perl-Net-SSLeay
perl-NetAddr-IP
perl-Object-Accessor
perl-Path-Class
perl-Try-Tiny
perl-Types-Serialiser
perl-WWW-Curl
perl-XML-Parser
perl-YAML
perl-YAML-Tiny
pgbouncer
pinentry
polkit
popt
postgresql
procps-ng
protobuf
protobuf-c
psmisc
pth
pyasn1-modules
pyOpenSSL
pyparsing
pytest
python-appdirs
python-asn1crypto
python-atomicwrites
python-attrs
python-bcrypt
python-certifi
python-cffi
python-chardet
python-configobj
python-constantly
python-coverage
python-cryptography
python-daemon
python-dateutil
python-defusedxml
python-distro
python-docopt
python-docutils
python-ecdsa
python-gevent
python-hyperlink
python-hypothesis
python-idna
python-imagesize
python-incremental
python-iniparse
python-ipaddr
python-jinja2
python-jmespath
python-jsonpatch
python-jsonpointer
python-jsonschema
python-lockfile
python-lxml
python-mako
python-markupsafe
python-mistune
python-msgpack
python-netaddr
python-netifaces
python-ntplib
python-oauthlib
python-packaging
python-pam
python-pbr
python-ply
python-prettytable
python-psutil
python-psycopg2
python-py
python-pyasn1
python-pycodestyle
python-pycparser
python-pycurl
python-pygments
python-pynacl
python-requests
python-setuptools_scm
python-simplejson
python-six
python-snowballstemmer
python-sphinx-theme-alabaster
python-twisted
python-urllib3
python-vcversioner
python-virtualenv
python-wcwidth
python-webob
python-websocket-client
python-werkzeug
python-zope-interface
python3
pytz
PyYAML
rapidjson
readline
rng-tools
rpcbind
rpcsvc-proto
rpm
rpm-ostree
rrdtool
rsync
rsyslog
ruby
rust
scons
sed
sg3_utils
shadow-utils
slang
snappy
socat
sqlite
sshpass
strace
strongswan
subversion
sudo
swig
syslinux
syslog-ng
sysstat
systemd-bootstrap
systemtap
tar
tboot
tcl
tcpdump
tcsh
tdnf
telegraf
texinfo
tmux
tpm2-abrmd
tpm2-pkcs11
tpm2-pytss
tpm2-tools
tpm2-tss
traceroute
tree
tzdata
unbound
unixODBC
unzip
usbutils
userspace-rcu
utf8proc
util-linux
valgrind
vim
vsftpd
WALinuxAgent
which
wpa_supplicant
xfsprogs
xinetd
xmlsec1
xmlto
xz
zchunk
zeromq
zip
zlib
zsh |
-| RPM software management source | [GPLv2+ License](https://github.com/rpm-software-management/dnf5/blob/main/COPYING.md) | dnf5 |
-| Source project | Same as the source project. | python-nocaselist |
-| Sysbench source | [GPLv2+ License](https://github.com/akopytov/sysbench/blob/master/COPYING) | sysbench |
+The Azure Linux SPEC files originated from a variety of sources with varying licenses. The changelog for each SPEC file declares provenance for Azure Linux. Some of the SPEC files that originated from other distributions might already have been derived from alternate sources. Their licenses can be found in LICENSE-EXCEPTION.xxx files in this folder.
+
+| Origin | License | Specs |
+| --- | --- | --- |
+| CentOS | [MIT](https://www.centos.org/legal/#licensing-policy) | crash-ptdump-command
delve
fstrm
nodejs-nodemon
rhnlib
rt-setup
rt-tests
rtctl
tuned |
+| Ceph source | [LGPL2.1](https://github.com/ceph/ceph/blob/master/COPYING-LGPL2.1) | ceph |
+| Debian | [MIT](https://opensource.org/licenses/MIT) | prometheus-process-exporter |
+| Fedora | [Fedora MIT License Declaration](https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#License_of_Fedora_SPEC_Files) | a52dec
abseil-cpp
accountsservice
acpica-tools
acpid
adcli
adobe-mappings-cmap
adobe-mappings-pdf
advancecomp
adwaita-icon-theme
afflib
aide
alsa-firmware
alsa-plugins
amtk
amtterm
annobin
ansible-freeipa
archivemount
argparse-manpage
arptables
arpwatch
asio
aspell
aspell-en
at
at-spi2-atk
at-spi2-core
atf
atk
atop
attr
audiofile
augeas
authbind
authd
authselect
autoconf213
avahi
babeltrace
babeltrace2
babl
baekmuk-ttf-fonts
bats
bcache-tools
biosdevname
blosc
bluez
bmake
bogofilter
bolt
boom-boot
booth
botan2
breezy
brotli
buildah
busybox
bwidget
byacc
ca-certificates
cachefilesd
cairomm
calamares
capstone
catatonit
catch
catch1
cdrdao
celt051
cereal
certmonger
cfitsio
cgdcbxd
chan
CharLS
checkpolicy
checksec
chrony
cim-schema
cjkuni-uming-fonts
cjose
ck
cldr-emoji-annotation
clucene
clutter
clutter-gst3
clutter-gtk
cmocka
cogl
collectd
colm
color-filesystem
colord
colorize
compat-lua
compiler-rt
conda
conmon
conntrack-tools
console-setup
container-exception-logger
containernetworking-plugins
convmv
corosync
corosync-qdevice
cpp-hocon
cppcheck
cpprest
cpptest
cpuid
criu
crypto-policies
cryptsetup
cscope
ctags
CUnit
cups
custodia
Cython
dbus-c++
dbus-python
dbxtool
dconf
dcraw
debootstrap
deltarpm
desktop-file-utils
device-mapper-persistent-data
dietlibc
diffstat
ding-libs
discount
distribution-gpg-keys
dleyna-connector-dbus
dleyna-core
dmraid
dnf
dnf-plugins-core
docbook-dtds
docbook-simple
docbook-slides
docbook-style-dsssl
docbook-utils
docbook2X
docbook5-schemas
docbook5-style-xsl
dogtail
dos2unix
dotconf
dovecot
dpdk
dpkg
driverctl
dropwatch
drpm
duktape
dumpet
dvd+rw-tools
dwarves
dwz
dyninst
ebtables
edac-utils
edk2
efax
efi-rpm-macros
egl-wayland
eglexternalplatform
elinks
enca
enchant
enchant2
enscript
environment-modules
evemu
execstack
exempi
exiv2
extra-cmake-modules
fabtests
facter
fakechroot
fakeroot
fapolicyd
fdk-aac-free
fdupes
fence-virt
fetchmail
fftw
filebench
fio
fipscheck
firewalld
flac
flatbuffers
flite
fltk
fmt
fontawesome-fonts
fontawesome4-fonts
fontpackages
fonts-rpm-macros
foomatic-db
freeglut
freeipmi
freeradius
freetds
freexl
fribidi
fros
frr
fsverity-utils
fuse-overlayfs
fuse-sshfs
fuse-zip
fuse3
future
fxload
gavl
gbenchmark
gconf-editor
GConf2
gcovr
gcr
gdal
gdisk
gdk-pixbuf2
generic-logos
genwqe-tools
geoclue2
GeoIP
GeoIP-GeoLite-data
geolite2
geos
gfs2-utils
ghc-srpm-macros
giflib
gl-manpages
glew
glm
glog
glslang
glusterfs
gnome-desktop-testing
gnome-doc-utils
gnome-icon-theme
gnome-keyring
gnu-efi
go-rpm-macros
gom
google-api-python-client
google-crosextra-caladea-fonts
google-crosextra-carlito-fonts
google-guice
google-noto-cjk-fonts
google-noto-emoji-fonts
google-roboto-slab-fonts
gphoto2
gpm
gpsbabel
graphene
graphite2
graphviz
grubby
gsettings-desktop-schemas
gsl
gsm
gspell
gssdp
gssntlmssp
gstreamer1
gstreamer1-plugins-base
gtk-vnc
gtk2
gtk3
gtkspell
gupnp
gupnp-av
gupnp-dlna
gupnp-igd
hardening-check
hdf
hdf5
heimdal
help2man
hexedit
hicolor-icon-theme
hiera
highlight
hivex
hostname
hping3
hsakmt
htop
hunspell
hunspell-af
hunspell-ar
hunspell-as
hunspell-ast
hunspell-az
hunspell-be
hunspell-bg
hunspell-bn
hunspell-br
hunspell-ca
hunspell-cop
hunspell-csb
hunspell-cv
hunspell-cy
hunspell-da
hunspell-de
hunspell-dsb
hunspell-el
hunspell-en
hunspell-eo
hunspell-es
hunspell-et
hunspell-eu
hunspell-fa
hunspell-fj
hunspell-fo
hunspell-fr
hunspell-fur
hunspell-fy
hunspell-ga
hunspell-gd
hunspell-gl
hunspell-grc
hunspell-gu
hunspell-gv
hunspell-haw
hunspell-hi
hunspell-hil
hunspell-hr
hunspell-hsb
hunspell-ht
hunspell-hu
hunspell-hy
hunspell-ia
hunspell-id
hunspell-is
hunspell-it
hunspell-kk
hunspell-km
hunspell-kn
hunspell-ko
hunspell-ku
hunspell-ky
hunspell-la
hunspell-lb
hunspell-ln
hunspell-mai
hunspell-mg
hunspell-mi
hunspell-mk
hunspell-ml
hunspell-mn
hunspell-mos
hunspell-mr
hunspell-ms
hunspell-mt
hunspell-nds
hunspell-ne
hunspell-nl
hunspell-no
hunspell-nr
hunspell-nso
hunspell-ny
hunspell-om
hunspell-or
hunspell-pa
hunspell-pl
hunspell-pt
hunspell-quh
hunspell-ro
hunspell-ru
hunspell-rw
hunspell-se
hunspell-shs
hunspell-si
hunspell-sk
hunspell-sl
hunspell-smj
hunspell-so
hunspell-sq
hunspell-sr
hunspell-sv
hunspell-sw
hunspell-ta
hunspell-te
hunspell-tet
hunspell-th
hunspell-tk
hunspell-tl
hunspell-tn
hunspell-tpi
hunspell-ts
hunspell-uk
hunspell-uz
hunspell-ve
hunspell-vi
hunspell-wa
hunspell-xh
hunspell-yi
hwdata
hwloc
hyperscan
hyperv-daemons
hyphen
hyphen-as
hyphen-bg
hyphen-bn
hyphen-ca
hyphen-da
hyphen-de
hyphen-el
hyphen-es
hyphen-fa
hyphen-fo
hyphen-fr
hyphen-ga
hyphen-gl
hyphen-grc
hyphen-gu
hyphen-hi
hyphen-hsb
hyphen-hu
hyphen-ia
hyphen-id
hyphen-is
hyphen-it
hyphen-kn
hyphen-ku
hyphen-lt
hyphen-mi
hyphen-ml
hyphen-mn
hyphen-mr
hyphen-nl
hyphen-or
hyphen-pa
hyphen-pl
hyphen-pt
hyphen-ro
hyphen-ru
hyphen-sa
hyphen-sk
hyphen-sl
hyphen-sv
hyphen-ta
hyphen-te
hyphen-tk
hyphen-uk
ibus
ibus-chewing
ibus-hangul
ibus-kkc
ibus-libzhuyin
ibus-m17n
ibus-rawcode
ibus-sayura
ibus-table
ibus-table-chinese
icc-profiles-openicc
icon-naming-utils
icoutils
iftop
iio-sensor-proxy
ilmbase
im-chooser
imaptest
imsettings
indent
infinipath-psm
inih
iniparser
intel-cmt-cat
intel-ipsec-mb
ioping
IP2Location
ipa-pgothic-fonts
ipcalc
ipmitool
iprutils
iptraf-ng
iptstate
irssi
iscsi-initiator-utils
isns-utils
iso-codes
isomd5sum
iw
iwd
jabberpy
jakarta-servlet
jasper
javapackages-bootstrap
javapackages-tools
jbigkit
jdom2
jemalloc
jfsutils
jimtcl
jose
js-jquery
jsoncpp
Judy
jurand
kata-containers
kde-filesystem
kde-settings
kexec-tools
keybinder3
keycloak-httpd-client-install
kf
kf-kconfig
kf-kcoreaddons
kf-ki18n
kf-kwidgetsaddons
kpmcore
kronosnet
ksh
kyotocabinet
kyua
ladspa
lame
langtable
lapack
lasso
latencytop
lato-fonts
lcms2
lcov
ldns
leatherman
ledmon
lensfun
leveldb
lftp
libabw
libaec
libao
libappstream-glib
libarrow
libart_lgpl
libasyncns
libatasmart
libavc1394
libblockdev
libbpf
libbsd
libburn
libbytesize
libcacard
libcanberra
libcdio
libcdio-paranoia
libcdr
libcgroup
libchewing
libcli
libcmis
libcmpiutil
libcomps
libcroco
libdaemon
libdap
libdatrie
libdazzle
libdbi
libdbi-drivers
libdbusmenu
libdc1394
libdeflate
libdmx
libdnf
libdrm
libdvdnav
libdvdread
libdwarf
libeasyfc
libecap
libecb
libell
libEMF
libeot
libepoxy
libepubgen
libesmtp
libetonyek
libev
libevdev
libexif
libexttextcat
libfabric
libfontenc
libfreehand
libftdi
libgadu
libgdither
libgee
libgee06
libgeotiff
libgexiv2
libgit2
libgit2-glib
libglade2
libglvnd
libgovirt
libgphoto2
libgsf
libgta
libguestfs
libgusb
libgxim
libgxps
libhangul
libhugetlbfs
libibcommon
libical
libICE
libicns
libid3tag
libIDL
libidn2
libiec61883
libieee1284
libimobiledevice
libindicator
libinput
libiodbc
libipt
libiptcdata
libiscsi
libisoburn
libisofs
libjcat
libkcapi
libkeepalive
libkkc
libkkc-data
libkml
liblangtag
libldb
libldm
liblerc
liblockfile
liblognorm
liblouis
liblqr-1
liblzf
libmad
libmediaart
libmicrohttpd
libmikmod
libmodman
libmodplug
libmodulemd1
libmpcdec
libmspub
libmtp
libmusicbrainz5
libmwaw
libnbd
libnet
libnetfilter_log
libnfs
libnotify
libntlm
libnumbertext
libnvme
liboauth
libodfgen
libofa
libogg
liboggz
liboil
libomxil-bellagio
libopenraw
liboping
libosinfo
libotf
libotr
libpagemaker
libpaper
libpciaccess
libpeas
libpfm
libpinyin
libplist
libpmemobj-cpp
libpng12
libpng15
libproxy
libpsm2
libpwquality
libqb
libqxp
libraqm
LibRaw
libraw1394
libreport
libreswan
librevenge
librsvg2
librx
libsamplerate
libsass
libsecret
libsemanage
libsigc++20
libsigsegv
libslirp
libSM
libsmbios
libsmi
libsndfile
libsodium
libspiro
libsrtp
libssh
libstaroffice
libstemmer
libstoragemgmt
libtdb
libteam
libtevent
libthai
libtnc
libtomcrypt
libtommath
libtpms
libtracecmd
libtraceevent
libtracefs
libtranslit
libucil
libunicap
libuninameslist
liburing
libusbmuxd
libuser
libutempter
libvarlink
libverto
libvirt-dbus
libvirt-glib
libvirt-java
libvirt-python
libvisio
libvisual
libvoikko
libvorbis
libvpx
libwacom
libwnck3
libwpd
libwpe
libwpg
libwps
libwvstreams
libX11
libXau
libXaw
libxcb
libXcomposite
libxcrypt
libXcursor
libXdamage
libXdmcp
libXext
libxfce4util
libXfixes
libXfont2
libXft
libXi
libXinerama
libxkbcommon
libxkbfile
libxklavier
libxmlb
libXmu
libXpm
libXrandr
libXrender
libXres
libXScrnSaver
libxshmfence
libXt
libXtst
libXv
libXxf86vm
libyami
libyang
libyubikey
libzip
libzmf
lilv
linuxconsoletools
linuxptp
lksctp-tools
lldpd
lockdev
logwatch
lpsolve
lrzsz
lua
lua-expat
lua-filesystem
lua-json
lua-lpeg
lua-lunit
lua-rpm-macros
lua-term
luajit
lujavrite
luksmeta
lutok
lv2
lzip
lzop
m17n-db
m17n-lib
mac-robber
mailcap
mailx
malaga
malaga-suomi-voikko
mallard-rng
man-pages-cs
man-pages-es
man-pages-it
man-pages-ja
man-pages-ko
man-pages-pl
man-pages-ru
man-pages-zh-CN
mandoc
mariadb-connector-c
mariadb-connector-odbc
marisa
maven-compiler-plugin
maven-jar-plugin
maven-resolver
maven-resources-plugin
maven-surefire
maven-wagon
mcelog
mcpp
mcstrans
mdadm
mdds
mdevctl
meanwhile
mecab
mecab-ipadic
media-player-info
memcached
memkind
mesa
mesa-libGLU
metis
microcode_ctl
microdnf
minicom
minizip
mksh
mobile-broadband-provider-info
mock
mock-core-configs
mod_auth_gssapi
mod_auth_mellon
mod_auth_openidc
mod_authnz_pam
mod_fcgid
mod_http2
mod_intercept_form_submit
mod_lookup_identity
mod_md
mod_security
mod_security_crs
mod_wsgi
mokutil
mozjs
mpage
mrtg
mstflint
mt-st
mtdev
mtools
mtr
mtx
munge
mutt
mythes
mythes-bg
mythes-ca
mythes-cs
mythes-da
mythes-de
mythes-el
mythes-en
mythes-eo
mythes-es
mythes-fr
mythes-ga
mythes-hu
mythes-mi
mythes-ne
mythes-nl
mythes-pl
mythes-pt
mythes-ro
mythes-ru
mythes-sk
mythes-sl
mythes-sv
mythes-uk
nbd
nbdkit
neon
netavark
netcdf
netcf
netlabel_tools
netpbm
netsniff-ng
nfs4-acl-tools
nftables
nilfs-utils
nkf
nload
nlopt
nodejs-packaging
nss-mdns
nss-pam-ldapd
nss_nis
nss_wrapper
ntfs-3g
ntfs-3g-system-compression
numad
numatop
numpy
nvmetcli
nvml
oath-toolkit
ocaml
ocaml-alcotest
ocaml-astring
ocaml-augeas
ocaml-base
ocaml-bigarray-compat
ocaml-bisect-ppx
ocaml-calendar
ocaml-camlp-streams
ocaml-camlp5
ocaml-camomile
ocaml-cinaps
ocaml-cmdliner
ocaml-compiler-libs-janestreet
ocaml-cppo
ocaml-csexp
ocaml-csv
ocaml-ctypes
ocaml-curses
ocaml-dune
ocaml-extlib
ocaml-fileutils
ocaml-findlib
ocaml-fmt
ocaml-fpath
ocaml-gettext
ocaml-integers
ocaml-libvirt
ocaml-luv
ocaml-lwt
ocaml-markup
ocaml-migrate-parsetree
ocaml-mmap
ocaml-num
ocaml-ocamlbuild
ocaml-ocplib-endian
ocaml-ounit
ocaml-parsexp
ocaml-pp
ocaml-ppx-derivers
ocaml-ppx-here
ocaml-ppx-let
ocaml-ppxlib
ocaml-re
ocaml-react
ocaml-result
ocaml-seq
ocaml-sexplib
ocaml-sexplib0
ocaml-srpm-macros
ocaml-stdio
ocaml-stdlib-random
ocaml-topkg
ocaml-tyxml
ocaml-uuidm
ocaml-uutf
ocaml-xml-light
ocaml-zarith
ocl-icd
oddjob
ogdi
omping
opa
opal
open-vm-tools
openblas
opencc
opencl-filesystem
opencl-headers
opencryptoki
opencsd
opendnssec
OpenEXR
openjade
openjpeg2
openmpi
openobex
openoffice-lv
openrdate
opensc
openslp
opensm
opensp
openssl
openssl-ibmpkcs11
openssl-pkcs11
openwsman
optipng
opus
opusfile
orangefs
ORBit2
orc
os-prober
osinfo-db
osinfo-db-tools
overpass-fonts
p11-kit
p7zip
pacemaker
pacrunner
pakchois
pam_krb5
pam_wrapper
papi
paps
parallel
patchelf
patchutils
pbzip2
pcp
pcsc-lite
pcsc-lite-ccid
PEGTL
perl
perl-Algorithm-C3
perl-Algorithm-Diff
perl-Alien-Build
perl-Alien-pkgconf
perl-AnyEvent
perl-AnyEvent-AIO
perl-AnyEvent-BDB
perl-App-cpanminus
perl-App-FatPacker
perl-AppConfig
perl-Archive-Extract
perl-Archive-Zip
perl-Authen-SASL
perl-B-COW
perl-B-Debug
perl-B-Hooks-EndOfScope
perl-B-Hooks-OP-Check
perl-B-Keywords
perl-B-Lint
perl-bareword-filehandles
perl-BDB
perl-Bit-Vector
perl-boolean
perl-Browser-Open
perl-BSD-Resource
perl-Business-ISBN
perl-Business-ISBN-Data
perl-Bytes-Random-Secure
perl-Capture-Tiny
perl-Carp-Clan
perl-CBOR-XS
perl-Class-Accessor
perl-Class-C3
perl-Class-C3-XS
perl-Class-Data-Inheritable
perl-Class-Factory-Util
perl-Class-Inspector
perl-Class-ISA
perl-Class-Load
perl-Class-Load-XS
perl-Class-Method-Modifiers
perl-Class-Singleton
perl-Class-Tiny
perl-Class-XSAccessor
perl-Clone
perl-Color-ANSI-Util
perl-Color-RGB-Util
perl-ColorThemeBase-Static
perl-ColorThemeRole-ANSI
perl-ColorThemes-Standard
perl-ColorThemeUtil-ANSI
perl-Compress-Bzip2
perl-Compress-LZF
perl-Compress-Raw-Lzma
perl-Config-AutoConf
perl-Config-INI
perl-Config-INI-Reader-Multiline
perl-Config-IniFiles
perl-Config-Simple
perl-Config-Tiny
perl-Const-Fast
perl-Convert-ASN1
perl-Convert-Bencode
perl-Coro
perl-Coro-Multicore
perl-CPAN-Changes
perl-CPAN-DistnameInfo
perl-CPAN-Meta-Check
perl-Cpanel-JSON-XS
perl-Crypt-CBC
perl-Crypt-DES
perl-Crypt-IDEA
perl-Crypt-OpenSSL-Bignum
perl-Crypt-OpenSSL-Guess
perl-Crypt-OpenSSL-Random
perl-Crypt-OpenSSL-RSA
perl-Crypt-PasswdMD5
perl-Crypt-Random-Seed
perl-CSS-Tiny
perl-Data-Dump
perl-Data-Munge
perl-Data-OptList
perl-Data-Peek
perl-Data-Section
perl-Data-UUID
perl-Date-Calc
perl-Date-ISO8601
perl-Date-Manip
perl-DateTime
perl-DateTime-Format-Builder
perl-DateTime-Format-DateParse
perl-DateTime-Format-HTTP
perl-DateTime-Format-IBeat
perl-DateTime-Format-ISO8601
perl-DateTime-Format-Mail
perl-DateTime-Format-Strptime
perl-DateTime-Locale
perl-DateTime-TimeZone
perl-DateTime-TimeZone-SystemV
perl-DateTime-TimeZone-Tzfile
perl-DBD-MySQL
perl-Devel-CallChecker
perl-Devel-Caller
perl-Devel-CheckBin
perl-Devel-CheckLib
perl-Devel-Cycle
perl-Devel-EnforceEncapsulation
perl-Devel-GlobalDestruction
perl-Devel-GlobalDestruction-XS
perl-Devel-Hide
perl-Devel-Leak
perl-Devel-LexAlias
perl-Devel-Size
perl-Devel-StackTrace
perl-Devel-Symdump
perl-Digest-BubbleBabble
perl-Digest-CRC
perl-Digest-HMAC
perl-Digest-SHA1
perl-Dist-CheckConflicts
perl-DynaLoader-Functions
perl-Email-Address
perl-Email-Date-Format
perl-Encode-Detect
perl-Encode-EUCJPASCII
perl-Encode-IMAPUTF7
perl-Encode-Locale
perl-Env-ShellWords
perl-Error
perl-EV
perl-Eval-Closure
perl-Event
perl-Exception-Class
perl-Expect
perl-ExtUtils-Config
perl-ExtUtils-Depends
perl-ExtUtils-Helpers
perl-ExtUtils-InstallPaths
perl-ExtUtils-PkgConfig
perl-FCGI
perl-Fedora-VSP
perl-FFI-CheckLib
perl-File-BaseDir
perl-File-BOM
perl-File-chdir
perl-File-CheckTree
perl-File-Copy-Recursive
perl-File-DesktopEntry
perl-File-Find-Object
perl-File-Find-Object-Rule
perl-File-Find-Rule
perl-File-Find-Rule-Perl
perl-File-Inplace
perl-File-Listing
perl-File-MimeInfo
perl-File-pushd
perl-File-ReadBackwards
perl-File-Remove
perl-File-ShareDir
perl-File-ShareDir-Install
perl-File-Slurp
perl-File-Slurp-Tiny
perl-File-Slurper
perl-File-Type
perl-Font-TTF
perl-FreezeThaw
perl-GD
perl-GD-Barcode
perl-generators
perl-Getopt-ArgvFile
perl-gettext
perl-Graphics-ColorNamesLite-WWW
perl-GSSAPI
perl-Guard
perl-Hook-LexWrap
perl-HTML-Parser
perl-HTML-Tagset
perl-HTML-Tree
perl-HTTP-Cookies
perl-HTTP-Daemon
perl-HTTP-Date
perl-HTTP-Message
perl-HTTP-Negotiate
perl-Image-Base
perl-Image-Info
perl-Image-Xbm
perl-Image-Xpm
perl-Import-Into
perl-Importer
perl-inc-latest
perl-indirect
perl-Inline-Files
perl-IO-AIO
perl-IO-All
perl-IO-CaptureOutput
perl-IO-Compress-Lzma
perl-IO-HTML
perl-IO-Multiplex
perl-IO-SessionData
perl-IO-Socket-INET6
perl-IO-String
perl-IO-stringy
perl-IO-Tty
perl-IPC-Run
perl-IPC-Run3
perl-IPC-System-Simple
perl-JSON
perl-JSON-Color
perl-JSON-MaybeXS
perl-LDAP
perl-libnet
perl-libwww-perl
perl-libxml-perl
perl-Lingua-EN-Inflect
perl-List-MoreUtils-XS
perl-local-lib
perl-Locale-Codes
perl-Locale-Maketext-Gettext
perl-Locale-Msgfmt
perl-Locale-PO
perl-Log-Message
perl-Log-Message-Simple
perl-LWP-MediaTypes
perl-LWP-Protocol-https
perl-Mail-AuthenticationResults
perl-Mail-DKIM
perl-Mail-IMAPTalk
perl-Mail-SPF
perl-MailTools
perl-Math-Int64
perl-Math-Random-ISAAC
perl-MIME-Charset
perl-MIME-Lite
perl-MIME-Types
perl-Mixin-Linewise
perl-MLDBM
perl-Mock-Config
perl-Module-Build-Tiny
perl-Module-CPANfile
perl-Module-Implementation
perl-Module-Install-AuthorRequires
perl-Module-Install-AuthorTests
perl-Module-Install-AutoLicense
perl-Module-Install-GithubMeta
perl-Module-Install-ManifestSkip
perl-Module-Install-ReadmeFromPod
perl-Module-Install-ReadmeMarkdownFromPod
perl-Module-Install-Repository
perl-Module-Install-TestBase
perl-Module-Load-Util
perl-Module-Manifest
perl-Module-Manifest-Skip
perl-Module-Package
perl-Module-Package-Au
perl-Module-Pluggable
perl-Module-Runtime
perl-Module-Signature
perl-Mojolicious
perl-Moo
perl-Mozilla-CA
perl-Mozilla-LDAP
perl-MRO-Compat
perl-multidimensional
perl-namespace-autoclean
perl-namespace-clean
perl-Net-CIDR-Lite
perl-Net-Daemon
perl-Net-DNS
perl-Net-DNS-Resolver-Mock
perl-Net-DNS-Resolver-Programmable
perl-Net-HTTP
perl-Net-IMAP-Simple
perl-Net-IMAP-Simple-SSL
perl-Net-IP
perl-Net-LibIDN2
perl-Net-Patricia
perl-Net-SMTP-SSL
perl-Net-SNMP
perl-Net-Telnet
perl-Newt
perl-NNTPClient
perl-NTLM
perl-Number-Compare
perl-Object-Deadly
perl-Object-HashBase
perl-Package-Anon
perl-Package-Constants
perl-Package-DeprecationManager
perl-Package-Generator
perl-Package-Stash
perl-Package-Stash-XS
perl-PadWalker
perl-Paper-Specs
perl-PAR-Dist
perl-Parallel-Iterator
perl-Params-Classify
perl-Params-Util
perl-Params-Validate
perl-Params-ValidationCompiler
perl-Parse-PMFile
perl-Parse-RecDescent
perl-Parse-Yapp
perl-Path-Tiny
perl-Perl-Critic
perl-Perl-Critic-More
perl-Perl-Destruct-Level
perl-Perl-MinimumVersion
perl-Perl4-CoreLibs
perl-PerlIO-gzip
perl-PerlIO-utf8_strict
perl-PkgConfig-LibPkgConf
perl-Pod-Coverage
perl-Pod-Coverage-TrustPod
perl-Pod-Escapes
perl-Pod-Eventual
perl-Pod-LaTeX
perl-Pod-Markdown
perl-Pod-Parser
perl-Pod-Plainer
perl-Pod-POM
perl-Pod-Spell
perl-PPI
perl-PPI-HTML
perl-PPIx-QuoteLike
perl-PPIx-Regexp
perl-PPIx-Utilities
perl-prefork
perl-Probe-Perl
perl-Razor-Agent
perl-Readonly
perl-Readonly-XS
perl-Ref-Util
perl-Ref-Util-XS
perl-Regexp-Pattern-Perl
perl-Return-MultiLevel
perl-Role-Tiny
perl-Scope-Guard
perl-Scope-Upper
perl-SGMLSpm
perl-SNMP_Session
perl-Socket6
perl-Software-License
perl-Sort-Versions
perl-Specio
perl-Spiffy
perl-strictures
perl-String-CRC32
perl-String-Format
perl-String-ShellQuote
perl-String-Similarity
perl-Sub-Exporter
perl-Sub-Exporter-Progressive
perl-Sub-Identify
perl-Sub-Info
perl-Sub-Install
perl-Sub-Name
perl-Sub-Quote
perl-Sub-Uplevel
perl-SUPER
perl-Switch
perl-Syntax-Highlight-Engine-Kate
perl-Sys-CPU
perl-Sys-MemInfo
perl-Sys-Virt
perl-Taint-Runtime
perl-Task-Weaken
perl-Term-Size-Any
perl-Term-Size-Perl
perl-Term-Table
perl-Term-UI
perl-TermReadKey
perl-Test-Base
perl-Test-ClassAPI
perl-Test-CPAN-Meta
perl-Test-CPAN-Meta-JSON
perl-Test-Deep
perl-Test-Differences
perl-Test-DistManifest
perl-Test-Distribution
perl-Test-EOL
perl-Test-Exception
perl-Test-Exit
perl-Test-FailWarnings
perl-Test-Fatal
perl-Test-File
perl-Test-File-ShareDir
perl-Test-Harness
perl-Test-HasVersion
perl-Test-InDistDir
perl-Test-Inter
perl-Test-LeakTrace
perl-Test-LongString
perl-Test-Manifest
perl-Test-Memory-Cycle
perl-Test-MinimumVersion
perl-Test-MockObject
perl-Test-MockRandom
perl-Test-Needs
perl-Test-NoTabs
perl-Test-NoWarnings
perl-Test-Object
perl-Test-Output
perl-Test-Pod
perl-Test-Pod-Coverage
perl-Test-Portability-Files
perl-Test-Requires
perl-Test-RequiresInternet
perl-Test-Script
perl-Test-Simple
perl-Test-SubCalls
perl-Test-Synopsis
perl-Test-Taint
perl-Test-TrailingSpace
perl-Test-utf8
perl-Test-Vars
perl-Test-Warn
perl-Test-Without-Module
perl-Test2-Plugin-NoWarnings
perl-Test2-Suite
perl-Test2-Tools-Explain
perl-Text-CharWidth
perl-Text-CSV_XS
perl-Text-Diff
perl-Text-Glob
perl-Text-Iconv
perl-Text-Soundex
perl-Text-Unidecode
perl-Text-WrapI18N
perl-Tie-IxHash
perl-TimeDate
perl-Tree-DAG_Node
perl-Unicode-EastAsianWidth
perl-Unicode-LineBreak
perl-Unicode-Map8
perl-Unicode-String
perl-Unicode-UTF8
perl-UNIVERSAL-can
perl-UNIVERSAL-isa
perl-Unix-Syslog
perl-URI
perl-Variable-Magic
perl-Version-Requirements
perl-WWW-RobotRules
perl-XML-Catalog
perl-XML-DOM
perl-XML-Dumper
perl-XML-Filter-BufferText
perl-XML-Generator
perl-XML-Grove
perl-XML-Handler-YAWriter
perl-XML-LibXML
perl-XML-LibXSLT
perl-XML-NamespaceSupport
perl-XML-Parser-Lite
perl-XML-RegExp
perl-XML-SAX
perl-XML-SAX-Base
perl-XML-SAX-Writer
perl-XML-Simple
perl-XML-TokeParser
perl-XML-TreeBuilder
perl-XML-Twig
perl-XML-Writer
perl-XML-XPath
perl-XML-XPathEngine
perl-XString
perl-YAML-LibYAML
perl-YAML-PP
perl-YAML-Syck
perltidy
pesign
phodav
php
php-pear
php-pecl-zip
physfs
picosat
pinfo
pipewire
pixman
pkcs11-helper
pkgconf
plexus-cipher
plexus-containers
plexus-sec-dispatcher
plotutils
pmdk-convert
pmix
pngcrush
pngnq
po4a
podman
poetry
policycoreutils
polkit-pkla-compat
polkit-qt-1
portreserve
postfix
potrace
powertop
ppp
pps-tools
pptp
priv_wrapper
procmail
prometheus
prometheus-node-exporter
ps_mem
psacct
psutils
ptlib
publicsuffix-list
pugixml
pulseaudio
puppet
pwgen
pyatspi
pybind11
pycairo
pyelftools
pyflakes
pygobject3
PyGreSQL
pykickstart
pylint
pyparted
pyproject-rpm-macros
pyserial
python-absl-py
python-aiodns
python-aiohttp
python-alsa
python-argcomplete
python-astroid
python-astunparse
python-async-generator
python-augeas
python-azure-sdk
python-beautifulsoup4
python-betamax
python-blinker
python-blivet
python-cached_property
python-charset-normalizer
python-cheetah
python-click
python-cmd2
python-colorama
python-CommonMark
python-conda-package-handling
python-configshell
python-cpuinfo
python-cups
python-curio
python-cytoolz
python-d2to1
python-dbus-client-gen
python-dbus-python-client-gen
python-dbus-signature-pyparsing
python-dbusmock
python-ddt
python-debtcollector
python-decorator
python-distlib
python-dmidecode
python-dns
python-dtopt
python-dulwich
python-editables
python-enchant
python-entrypoints
python-ethtool
python-evdev
python-extras
python-faker
python-fasteners
python-fastjsonschema
python-fields
python-filelock
python-fixtures
python-flake8
python-flask
python-flit
python-flit-core
python-fluidity-sm
python-frozendict
python-funcsigs
python-gast
python-genshi
python-google-auth
python-google-auth-oauthlib
python-greenlet
python-gssapi
python-h5py
python-hatch-fancy-pypi-readme
python-hatch-vcs
python-hatchling
python-hs-dbus-signature
python-html5lib
python-httplib2
python-humanize
python-hwdata
python-importlib-metadata
python-inotify
python-into-dbus-python
python-IPy
python-iso8601
python-isodate
python-isort
python-itsdangerous
python-justbases
python-justbytes
python-jwcrypto
python-jwt
python-kdcproxy
python-kerberos
python-kmod
python-kubernetes
python-lark
python-lazy-object-proxy
python-ldap
python-linux-procfs
python-lit
python-looseversion
python-markdown
python-markdown-it-py
python-mccabe
python-mdurl
python-memcached
python-mimeparse
python-mock
python-monotonic
python-more-itertools
python-mpmath
python-msal
python-msrestazure
python-mutagen
python-networkx
python-nose2
python-ntlm-auth
python-oauth2client
python-openpyxl
python-openstackdocstheme
python-oslo-i18n
python-oslo-sphinx
python-paramiko
python-pathspec
python-pefile
python-pexpect
python-pkgconfig
python-platformdirs
python-pluggy
python-podman-api
python-poetry-core
python-process-tests
python-productmd
python-ptyprocess
python-pycares
python-pycosat
python-pydbus
python-pymongo
python-PyMySQL
python-pyperclip
python-pyroute2
python-pyrsistent
python-pysocks
python-pytest-benchmark
python-pytest-cov
python-pytest-expect
python-pytest-flake8
python-pytest-flakes
python-pytest-forked
python-pytest-mock
python-pytest-relaxed
python-pytest-runner
python-pytest-subtests
python-pytest-timeout
python-pytest-xdist
python-pytoml
python-pyudev
python-pywbem
python-qrcode
python-rdflib
python-recommonmark
python-requests-file
python-requests-ftp
python-requests-kerberos
python-requests-mock
python-requests-oauthlib
python-requests-toolbelt
python-requests_ntlm
python-responses
python-retrying
python-rfc3986
python-rich
python-rpm-generators
python-rpmfluff
python-rtslib
python-ruamel-yaml
python-ruamel-yaml-clib
python-s3transfer
python-schedutils
python-semantic_version
python-should_dsl
python-simpleline
python-slip
python-sniffio
python-sortedcontainers
python-soupsieve
python-sphinx
python-sphinx-epytext
python-sphinx-theme-py3doc-enhanced
python-sphinx_rtd_theme
python-sphinxcontrib-apidoc
python-sphinxcontrib-applehelp
python-sphinxcontrib-devhelp
python-sphinxcontrib-htmlhelp
python-sphinxcontrib-httpdomain
python-sphinxcontrib-jsmath
python-sphinxcontrib-qthelp
python-sphinxcontrib-serializinghtml
python-sqlalchemy
python-suds
python-systemd
python-tempita
python-templated-dictionary
python-termcolor
python-testpath
python-testresources
python-testscenarios
python-testtools
python-tidy
python-toml
python-tomli
python-toolz
python-tornado
python-tox
python-tox-current-env
python-tqdm
python-trio
python-trove-classifiers
python-typing-extensions
python-uamqp
python-unittest2
python-uritemplate
python-urwid
python-varlink
python-versioneer
python-virt-firmware
python-voluptuous
python-waitress
python-webencodings
python-webtest
python-wheel
python-whoosh
python-winrm
python-wrapt
python-xmltodict
python-yubico
python-zipp
python-zmq
python-zstd
python3-mallard-ducktype
python3-pytest-asyncio
python3-typed_ast
pyusb
pywbem
pyxattr
qemu
qhull
qpdf
qperf
qr-code-generator
qt-rpm-macros
qt5-qtconnectivity
qt5-qtsensors
qt5-qtserialport
qtbase
qtdeclarative
qtsvg
qttools
quagga
quota
radvd
ragel
raptor2
rarian
rasdaemon
rasqal
rcs
rdist
rdma-core
re2
re2c
realmd
rear
recode
redland
resource-agents
rest
rhash
rlwrap
rp-pppoe
rpm-mpi-hooks
rpmdevtools
rpmlint
rtkit
rtl-sdr
ruby-augeas
rubygem-bson
rubygem-coderay
rubygem-diff-lcs
rubygem-flexmock
rubygem-hpricot
rubygem-introspection
rubygem-liquid
rubygem-maruku
rubygem-metaclass
rubygem-mongo
rubygem-mustache
rubygem-mysql2
rubygem-pkg-config
rubygem-rake
rubygem-rake-compiler
rubygem-ronn
rubygem-rouge
rubygem-rspec
rubygem-rspec-expectations
rubygem-rspec-mocks
rubygem-rspec-support
rubygem-thread_order
rusers
rust-cbindgen
samba
sanlock
sassist
satyr
sbc
sblim-cim-client2
sblim-cmpi-base
sblim-cmpi-devel
sblim-cmpi-fsvol
sblim-cmpi-network
sblim-cmpi-nfsv3
sblim-cmpi-nfsv4
sblim-cmpi-params
sblim-cmpi-sysfs
sblim-cmpi-syslog
sblim-indication_helper
sblim-sfcb
sblim-sfcc
sblim-sfcCommon
sblim-testsuite
sblim-wbemcli
scl-utils
scotch
screen
scrub
SDL
SDL2
SDL_sound
sdparm
seabios
secilc
selinux-policy
sendmail
serd
setools
setserial
setuptool
sgabios
sgml-common
sgpio
shared-mime-info
sharutils
sip
sisu
skkdic
sleuthkit
slirp4netns
smartmontools
smc-tools
socket_wrapper
softhsm
sombok
sord
sos
sound-theme-freedesktop
soundtouch
sox
soxr
sparsehash
spausedd
speex
speexdsp
spice-protocol
spice-vdagent
spirv-headers
spirv-tools
splix
squashfs-tools
squid
sratom
sscg
star
startup-notification
stunnel
subscription-manager
suitesparse
SuperLU
supermin
switcheroo-control
swtpm
symlinks
sympy
sysfsutils
systemd
systemd-bootchart
t1lib
t1utils
taglib
tang
targetcli
tbb
tcl-pgtcl
tclx
teckit
telnet
thrift
tidy
time
tini
tinycdb
tix
tk
tlog
tmpwatch
tn5250
tofrodos
tokyocabinet
trace-cmd
tss2
ttembed
ttmkfdir
tuna
twolame
uchardet
uclibc-ng
ucpp
ucs-miscfixed-fonts
ucx
udftools
udica
udisks2
uglify-js
uid_wrapper
unicode-emoji
unicode-ucd
unique3
units
upower
uriparser
urlview
usb_modeswitch
usb_modeswitch-data
usbguard
usbip
usbmuxd
usbredir
usermode
ustr
uthash
uuid
uw-imap
v4l-utils
vhostmd
vino
virglrenderer
virt-p2v
virt-top
virt-what
virt-who
vitess
vmem
volume_key
vorbis-tools
vte291
vulkan-headers
vulkan-loader
watchdog
wavpack
wayland
wayland-protocols
web-assets
webrtc-audio-processing
websocketpp
wget
whois
wireguard-tools
wireless-regdb
wireshark
woff2
wordnet
words
wpebackend-fdo
wsmancli
wvdial
x3270
xapian-core
Xaw3d
xcb-proto
xcb-util
xcb-util-image
xcb-util-keysyms
xcb-util-renderutil
xcb-util-wm
xdelta
xdg-dbus-proxy
xdg-utils
xdp-tools
xerces-c
xfconf
xfsdump
xhtml1-dtds
xkeyboard-config
xmlstarlet
xmltoman
xmvn
xorg-x11-apps
xorg-x11-drv-libinput
xorg-x11-font-utils
xorg-x11-fonts
xorg-x11-proto-devel
xorg-x11-server
xorg-x11-server-utils
xorg-x11-util-macros
xorg-x11-utils
xorg-x11-xauth
xorg-x11-xbitmaps
xorg-x11-xinit
xorg-x11-xkb-utils
xorg-x11-xtrans-devel
xrestop
xterm
xxhash
yajl
yaml-cpp
yasm
yelp-tools
yelp-xsl
ykclient
yp-tools
ypbind
ypserv
z3
zenity
zerofree
zfs-fuse
zipper
zopfli
zziplib |
+| Fedora (Copyright Remi Collet) | [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode) | libmemcached-awesome
librabbitmq |
+| Fedora (ISC) | [ISC License](https://github.com/sarugaku/resolvelib/blob/main/LICENSE) | python-resolvelib |
+| Magnus Edenhill Open Source | [Magnus Edenhill Open Source BSD License](https://github.com/jemalloc/jemalloc/blob/dev/COPYING) | librdkafka |
+| Microsoft | [Microsoft MIT License](/LICENSES-AND-NOTICES/LICENSE.md) | application-gateway-kubernetes-ingress
asc
azcopy
azure-iot-sdk-c
azure-nvme-utils
azure-storage-cpp
azurelinux-release
azurelinux-repos
azurelinux-rpm-macros
azurelinux-sysinfo
bazel
blobfuse2
bmon
bpftrace
ccache
cert-manager
cf-cli
check-restart
clamav
cloud-hypervisor
cmake-fedora
containerd
coredns
dcos-cli
debugedit
dejavu-fonts
distroless-packages
docker-buildx
docker-cli
docker-compose
doxygen
dtc
elixir
espeak-ng
espeakup
flannel
fluent-bit
freefont
gflags
gh
go-md2man
grpc
grub2-efi-binary-signed
GSL
gtk-update-icon-cache
helm
hvloader
ig
intel-pf-bb-config
ivykis
jsonbuilder
jx
kata-containers-cc
kata-packages-uvm
keda
keras
kernel-signed
kpatch
kube-vip-cloud-provider
kubernetes
libacvp
libconfini
libconfuse
libgdiplus
libmaxminddb
libmetalink
libsafec
libuv
libxml++
lld
local-path-provisioner
lsb-release
ltp
lttng-consume
mm-common
moby-containerd-cc
moby-engine
msgpack
ncompress
networkd-dispatcher
nlohmann-json
nmap
node-problem-detector
ntopng
opentelemetry-cpp
packer
pcaudiolib
pcre2
perl-Test-Warnings
perl-Text-Template
pigz
prebuilt-ca-certificates
prebuilt-ca-certificates-base
prometheus-adapter
python-cachetools
python-cherrypy
python-cstruct
python-execnet
python-google-pasta
python-libclang
python-libevdev
python-logutils
python-ml-dtypes
python-namex
python-nocasedict
python-opt-einsum
python-optree
python-pecan
python-pip
python-pyrpm
python-remoto
python-repoze-lru
python-routes
python-rsa
python-setuptools
python-sphinxcontrib-websupport
python-tensorboard
python-tensorboard-plugin-wit
python-yamlloader
R
rabbitmq-server
rocksdb
rubygem-addressable
rubygem-asciidoctor
rubygem-async
rubygem-async-http
rubygem-async-io
rubygem-async-pool
rubygem-bindata
rubygem-concurrent-ruby
rubygem-connection_pool
rubygem-console
rubygem-cool.io
rubygem-deep_merge
rubygem-digest-crc
rubygem-elastic-transport
rubygem-elasticsearch
rubygem-elasticsearch-api
rubygem-eventmachine
rubygem-excon
rubygem-faraday
rubygem-faraday-em_http
rubygem-faraday-em_synchrony
rubygem-faraday-excon
rubygem-faraday-httpclient
rubygem-faraday-multipart
rubygem-faraday-net_http
rubygem-faraday-net_http_persistent
rubygem-faraday-patron
rubygem-faraday-rack
rubygem-faraday-retry
rubygem-ffi
rubygem-fiber-local
rubygem-fluent-config-regexp-type
rubygem-fluent-logger
rubygem-fluent-plugin-elasticsearch
rubygem-fluent-plugin-kafka
rubygem-fluent-plugin-prometheus
rubygem-fluent-plugin-prometheus_pushgateway
rubygem-fluent-plugin-record-modifier
rubygem-fluent-plugin-rewrite-tag-filter
rubygem-fluent-plugin-systemd
rubygem-fluent-plugin-webhdfs
rubygem-fluent-plugin-windows-exporter
rubygem-fluentd
rubygem-hirb
rubygem-hocon
rubygem-hoe
rubygem-http_parser
rubygem-httpclient
rubygem-io-event
rubygem-jmespath
rubygem-ltsv
rubygem-mini_portile2
rubygem-minitest
rubygem-mocha
rubygem-msgpack
rubygem-multi_json
rubygem-multipart-post
rubygem-net-http-persistent
rubygem-nio4r
rubygem-nokogiri
rubygem-oj
rubygem-parallel
rubygem-power_assert
rubygem-prometheus-client
rubygem-protocol-hpack
rubygem-protocol-http
rubygem-protocol-http1
rubygem-protocol-http2
rubygem-public_suffix
rubygem-puppet-resource_api
rubygem-rdiscount
rubygem-rdkafka
rubygem-rexml
rubygem-ruby-kafka
rubygem-ruby-progressbar
rubygem-rubyzip
rubygem-semantic_puppet
rubygem-serverengine
rubygem-sigdump
rubygem-strptime
rubygem-systemd-journal
rubygem-test-unit
rubygem-thor
rubygem-timers
rubygem-tzinfo
rubygem-tzinfo-data
rubygem-webhdfs
rubygem-webrick
rubygem-yajl-ruby
rubygem-zip-zip
runc
sdbus-cpp
sgx-backwards-compatibility
shim
shim-unsigned
shim-unsigned-aarch64
shim-unsigned-x64
skopeo
span-lite
sriov-network-device-plugin
SymCrypt
SymCrypt-OpenSSL
tensorflow
tinyxml2
toml11
tracelogging
umoci
usrsctp
vala
verity-read-only-root
vnstat
zstd |
+| Netplan source | [GPLv3](https://github.com/canonical/netplan/blob/main/COPYING) | netplan |
+| Numad source | [LGPLv2 License](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt) | numad |
+| NVIDIA | [ASL 2.0 License and spec specific licenses](http://www.apache.org/licenses/LICENSE-2.0) | libnvidia-container
mlnx-tools
mlx-bootctl
nvidia-container-toolkit
ofed-scripts
perftest |
+| OpenEuler | [BSD-3 License](https://github.com/pytorch/pytorch/blob/master/LICENSE) | pytorch |
+| OpenMamba | [Openmamba GPLv2 License](https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt) | bash-completion |
+| OpenSUSE | Following [openSUSE guidelines](https://en.opensuse.org/openSUSE:Specfile_guidelines#Specfile_Licensing) | ant
ant-junit
antlr
aopalliance
apache-commons-beanutils
apache-commons-cli
apache-commons-codec
apache-commons-collections
apache-commons-collections4
apache-commons-compress
apache-commons-daemon
apache-commons-dbcp
apache-commons-digester
apache-commons-httpclient
apache-commons-io
apache-commons-jexl
apache-commons-lang
apache-commons-lang3
apache-commons-logging
apache-commons-net
apache-commons-pool
apache-commons-pool2
apache-commons-validator
apache-commons-vfs2
apache-parent
args4j
atinject
base64coder
bcel
bea-stax
beust-jcommander
bsf
byaccj
cal10n
cdparanoia
cglib
cni
containerized-data-importer
cpulimit
cri-o
ecj
fillup
flux
gd
geronimo-specs
glassfish-annotation-api
gnu-getopt
gnu-regexp
golang-packaging
guava
guava20
hamcrest
hawtjni-runtime
httpcomponents-core
influx-cli
influxdb
isorelax
jakarta-taglibs-standard
jansi
jarjar
java-cup
java-cup-bootstrap
javacc
javacc-bootstrap
javassist
jboss-interceptors-1.2-api
jdepend
jflex
jflex-bootstrap
jlex
jline
jna
jsch
jsoup
jsr-305
jtidy
junit
junitperf
jzlib
kubevirt
kured
libcontainers-common
libtheora
libva
libvdpau
lynx
maven-parent
multus
objectweb-anttask
objectweb-asm
objenesis
oro
osgi-annotation
osgi-compendium
osgi-core
patterns-ceph-containers
plexus-classworlds
plexus-interpolation
plexus-pom
plexus-utils
proj
psl-make-dafsa
publicsuffix
qdox
regexp
relaxngDatatype
rhino
ripgrep
servletapi4
servletapi5
shapelib
slf4j
trilead-ssh2
virtiofsd
xalan-j2
xbean
xcursor-themes
xerces-j2
xml-commons-apis
xml-commons-resolver
xmldb-api
xmlrpc-c
xmlunit
xpp2
xpp3
xz-java |
+| Photon | [Photon License](LICENSE-PHOTON.md) and [Photon Notice](NOTICE.APACHE2).
Also see [LICENSE-EXCEPTIONS.PHOTON](LICENSE-EXCEPTIONS.PHOTON). | acl
alsa-lib
alsa-utils
ansible
apr
apr-util
asciidoc
atftp
audit
autoconf
autoconf-archive
autofs
autogen
automake
babel
bash
bc
bcc
bind
binutils
bison
blktrace
boost
btrfs-progs
bubblewrap
build-essential
bzip2
c-ares
cairo
cassandra
cdrkit
check
chkconfig
chrpath
cifs-utils
clang
cloud-init
cloud-utils-growpart
cmake
cni-plugins
core-packages
coreutils
cpio
cppunit
cracklib
crash
crash-gcore-command
createrepo_c
cri-tools
cronie
curl
cyrus-sasl
cyrus-sasl-bootstrap
dbus
dbus-glib
dejagnu
device-mapper-multipath
dhcp
dialog
diffutils
dkms
dmidecode
dnsmasq
docbook-dtd-xml
docbook-style-xsl
dosfstools
dracut
dstat
e2fsprogs
ed
efibootmgr
efivar
elfutils
emacs
erlang
etcd
ethtool
expat
expect
fcgi
file
filesystem
findutils
flex
fontconfig
fping
freetype
fuse
gawk
gc
gcc
gdb
gdbm
gettext
git
git-lfs
glib
glib-networking
glibc
glibmm
glide
gmp
gnome-common
gnupg2
gnuplot
gnutls
gobject-introspection
golang
gperf
gperftools
gpgme
gptfdisk
grep
groff
grub2
gtest
gtk-doc
guile
gzip
haproxy
harfbuzz
haveged
hdparm
http-parser
httpd
i2c-tools
iana-etc
icu
initramfs
initscripts
inotify-tools
intltool
iotop
iperf3
iproute
ipset
iptables
iputils
ipvsadm
ipxe
irqbalance
itstool
jansson
jq
json-c
json-glib
kbd
keepalived
kernel
kernel-headers
kernel-mshv
kernel-rt
kernel-uvm
keyutils
kmod
krb5
less
libaio
libarchive
libassuan
libatomic_ops
libcap
libcap-ng
libconfig
libdb
libdnet
libedit
libestr
libevent
libfastjson
libffi
libgcrypt
libgpg-error
libgssglue
libgudev
libjpeg-turbo
libksba
liblogging
libmbim
libmnl
libmodulemd
libmpc
libmspack
libndp
libnetfilter_conntrack
libnetfilter_cthelper
libnetfilter_cttimeout
libnetfilter_queue
libnfnetlink
libnftnl
libnl3
libnsl2
libpcap
libpipeline
libpng
libpsl
libqmi
librelp
librepo
librsync
libseccomp
libselinux
libsepol
libserf
libsigc++30
libsolv
libsoup
libssh2
libtalloc
libtar
libtasn1
libtiff
libtirpc
libtool
libunistring
libunwind
libusb
libvirt
libwebp
libxml2
libxslt
libyaml
linux-firmware
lldb
lldpad
llvm
lm-sensors
lmdb
log4cpp
logrotate
lshw
lsof
lsscsi
ltrace
lttng-tools
lttng-ust
lvm2
lz4
lzo
m2crypto
m4
make
man-db
man-pages
mariadb
maven
mc
mercurial
meson
mlocate
ModemManager
mpfr
msr-tools
mysql
nano
nasm
ncurses
ndctl
net-snmp
net-tools
nettle
newt
nfs-utils
nghttp2
nginx
ninja-build
nodejs
npth
nspr
nss
nss-altfiles
ntp
numactl
nvme-cli
oniguruma
OpenIPMI
openldap
openscap
openssh
openvswitch
ostree
pam
pango
parted
patch
pciutils
perl-Canary-Stability
perl-CGI
perl-common-sense
perl-Crypt-SSLeay
perl-DBD-SQLite
perl-DBI
perl-DBIx-Simple
perl-Exporter-Tiny
perl-File-HomeDir
perl-File-Which
perl-IO-Socket-SSL
perl-JSON-Any
perl-JSON-XS
perl-libintl-perl
perl-List-MoreUtils
perl-Module-Build
perl-Module-Install
perl-Module-ScanDeps
perl-Net-SSLeay
perl-NetAddr-IP
perl-Object-Accessor
perl-Path-Class
perl-Try-Tiny
perl-Types-Serialiser
perl-WWW-Curl
perl-XML-Parser
perl-YAML
perl-YAML-Tiny
pgbouncer
pinentry
polkit
popt
postgresql
procps-ng
protobuf
protobuf-c
psmisc
pth
pyasn1-modules
pyOpenSSL
pyparsing
pytest
python-appdirs
python-asn1crypto
python-atomicwrites
python-attrs
python-bcrypt
python-certifi
python-cffi
python-chardet
python-configobj
python-constantly
python-coverage
python-cryptography
python-daemon
python-dateutil
python-defusedxml
python-distro
python-docopt
python-docutils
python-ecdsa
python-gevent
python-hyperlink
python-hypothesis
python-idna
python-imagesize
python-incremental
python-iniparse
python-ipaddr
python-jinja2
python-jmespath
python-jsonpatch
python-jsonpointer
python-jsonschema
python-lockfile
python-lxml
python-mako
python-markupsafe
python-mistune
python-msgpack
python-netaddr
python-netifaces
python-ntplib
python-oauthlib
python-packaging
python-pam
python-pbr
python-ply
python-prettytable
python-psutil
python-psycopg2
python-py
python-pyasn1
python-pycodestyle
python-pycparser
python-pycurl
python-pygments
python-pynacl
python-requests
python-setuptools_scm
python-simplejson
python-six
python-snowballstemmer
python-sphinx-theme-alabaster
python-twisted
python-urllib3
python-vcversioner
python-virtualenv
python-wcwidth
python-webob
python-websocket-client
python-werkzeug
python-zope-interface
python3
pytz
PyYAML
rapidjson
readline
rng-tools
rpcbind
rpcsvc-proto
rpm
rpm-ostree
rrdtool
rsync
rsyslog
ruby
rust
scons
sed
sg3_utils
shadow-utils
slang
snappy
socat
sqlite
sshpass
strace
strongswan
subversion
sudo
swig
syslinux
syslog-ng
sysstat
systemd-bootstrap
systemtap
tar
tboot
tcl
tcpdump
tcsh
tdnf
telegraf
texinfo
tmux
tpm2-abrmd
tpm2-pkcs11
tpm2-pytss
tpm2-tools
tpm2-tss
traceroute
tree
tzdata
unbound
unixODBC
unzip
usbutils
userspace-rcu
utf8proc
util-linux
valgrind
vim
vsftpd
WALinuxAgent
which
wpa_supplicant
xfsprogs
xinetd
xmlsec1
xmlto
xz
zchunk
zeromq
zip
zlib
zsh |
+| RPM software management source | [GPLv2+ License](https://github.com/rpm-software-management/dnf5/blob/main/COPYING.md) | dnf5 |
+| Source project | Same as the source project. | python-nocaselist |
+| Sysbench source | [GPLv2+ License](https://github.com/akopytov/sysbench/blob/master/COPYING) | sysbench |
diff --git a/LICENSES-AND-NOTICES/SPECS/data/licenses.json b/LICENSES-AND-NOTICES/SPECS/data/licenses.json
index 7e6e8f17947..21f43a0460f 100644
--- a/LICENSES-AND-NOTICES/SPECS/data/licenses.json
+++ b/LICENSES-AND-NOTICES/SPECS/data/licenses.json
@@ -1,3078 +1,3084 @@
-{
- "header": "The Azure Linux SPEC files originated from a variety of sources with varying licenses. The changelog for each SPEC file declares provenance for Azure Linux. Some of the SPEC files that originated from other distributions might already have been derived from alternate sources. Their licenses can be found in LICENSE-EXCEPTION.xxx files in this folder.",
- "table_headers": [
- "Origin",
- "License",
- "Specs"
- ],
- "licenses": {
- "CentOS": {
- "license": "[MIT](https://www.centos.org/legal/#licensing-policy)",
- "specs": [
- "crash-ptdump-command",
- "delve",
- "fstrm",
- "nodejs-nodemon",
- "rhnlib",
- "rt-setup",
- "rt-tests",
- "rtctl",
- "tuned"
- ]
- },
- "Ceph source": {
- "license": "[LGPL2.1](https://github.com/ceph/ceph/blob/master/COPYING-LGPL2.1)",
- "specs": [
- "ceph"
- ]
- },
- "Debian": {
- "license": "[MIT](https://opensource.org/licenses/MIT)",
- "specs": [
- "prometheus-process-exporter"
- ]
- },
- "Fedora": {
- "license": "[Fedora MIT License Declaration](https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#License_of_Fedora_SPEC_Files)",
- "specs": [
- "a52dec",
- "abseil-cpp",
- "accountsservice",
- "acpica-tools",
- "acpid",
- "adcli",
- "adobe-mappings-cmap",
- "adobe-mappings-pdf",
- "advancecomp",
- "adwaita-icon-theme",
- "afflib",
- "aide",
- "alsa-firmware",
- "alsa-plugins",
- "amtk",
- "amtterm",
- "annobin",
- "ansible-freeipa",
- "archivemount",
- "argparse-manpage",
- "arptables",
- "arpwatch",
- "asio",
- "aspell",
- "aspell-en",
- "at",
- "at-spi2-atk",
- "at-spi2-core",
- "atf",
- "atk",
- "atop",
- "attr",
- "audiofile",
- "augeas",
- "authbind",
- "authd",
- "authselect",
- "autoconf213",
- "avahi",
- "babeltrace",
- "babeltrace2",
- "babl",
- "baekmuk-ttf-fonts",
- "bats",
- "bcache-tools",
- "biosdevname",
- "blosc",
- "bluez",
- "bmake",
- "bogofilter",
- "bolt",
- "boom-boot",
- "booth",
- "botan2",
- "breezy",
- "brotli",
- "buildah",
- "busybox",
- "bwidget",
- "byacc",
- "ca-certificates",
- "cachefilesd",
- "cairomm",
- "calamares",
- "capstone",
- "catatonit",
- "catch",
- "catch1",
- "cdrdao",
- "celt051",
- "cereal",
- "certmonger",
- "cfitsio",
- "cgdcbxd",
- "chan",
- "CharLS",
- "checkpolicy",
- "checksec",
- "chrony",
- "cim-schema",
- "cjkuni-uming-fonts",
- "cjose",
- "ck",
- "cldr-emoji-annotation",
- "clucene",
- "clutter",
- "clutter-gst3",
- "clutter-gtk",
- "cmocka",
- "cogl",
- "collectd",
- "colm",
- "color-filesystem",
- "colord",
- "colorize",
- "compat-lua",
- "compiler-rt",
- "conda",
- "conmon",
- "conntrack-tools",
- "console-setup",
- "container-exception-logger",
- "containernetworking-plugins",
- "convmv",
- "corosync",
- "corosync-qdevice",
- "cpp-hocon",
- "cppcheck",
- "cpprest",
- "cpptest",
- "cpuid",
- "criu",
- "crypto-policies",
- "cryptsetup",
- "cscope",
- "ctags",
- "CUnit",
- "cups",
- "custodia",
- "Cython",
- "dbus-c++",
- "dbus-python",
- "dbxtool",
- "dconf",
- "dcraw",
- "debootstrap",
- "deltarpm",
- "desktop-file-utils",
- "device-mapper-persistent-data",
- "dietlibc",
- "diffstat",
- "ding-libs",
- "discount",
- "distribution-gpg-keys",
- "dleyna-connector-dbus",
- "dleyna-core",
- "dmraid",
- "dnf",
- "dnf-plugins-core",
- "docbook-dtds",
- "docbook-simple",
- "docbook-slides",
- "docbook-style-dsssl",
- "docbook-utils",
- "docbook2X",
- "docbook5-schemas",
- "docbook5-style-xsl",
- "dogtail",
- "dos2unix",
- "dotconf",
- "dovecot",
- "dpdk",
- "dpkg",
- "driverctl",
- "dropwatch",
- "drpm",
- "duktape",
- "dumpet",
- "dvd+rw-tools",
- "dwarves",
- "dwz",
- "dyninst",
- "ebtables",
- "edac-utils",
- "edk2",
- "efax",
- "efi-rpm-macros",
- "egl-wayland",
- "eglexternalplatform",
- "elinks",
- "enca",
- "enchant",
- "enchant2",
- "enscript",
- "environment-modules",
- "evemu",
- "execstack",
- "exempi",
- "exiv2",
- "extra-cmake-modules",
- "fabtests",
- "facter",
- "fakechroot",
- "fakeroot",
- "fapolicyd",
- "fdk-aac-free",
- "fdupes",
- "fence-virt",
- "fetchmail",
- "fftw",
- "filebench",
- "fio",
- "fipscheck",
- "firewalld",
- "flac",
- "flatbuffers",
- "flite",
- "fltk",
- "fmt",
- "fontawesome-fonts",
- "fontawesome4-fonts",
- "fontpackages",
- "fonts-rpm-macros",
- "foomatic-db",
- "freeglut",
- "freeipmi",
- "freeradius",
- "freetds",
- "freexl",
- "fribidi",
- "fros",
- "frr",
- "fsverity-utils",
- "fuse-overlayfs",
- "fuse-sshfs",
- "fuse-zip",
- "fuse3",
- "future",
- "fxload",
- "gavl",
- "gbenchmark",
- "gconf-editor",
- "GConf2",
- "gcovr",
- "gcr",
- "gdal",
- "gdisk",
- "gdk-pixbuf2",
- "generic-logos",
- "genwqe-tools",
- "geoclue2",
- "GeoIP",
- "GeoIP-GeoLite-data",
- "geolite2",
- "geos",
- "gfs2-utils",
- "ghc-srpm-macros",
- "giflib",
- "gl-manpages",
- "glew",
- "glm",
- "glog",
- "glslang",
- "glusterfs",
- "gnome-desktop-testing",
- "gnome-doc-utils",
- "gnome-icon-theme",
- "gnome-keyring",
- "gnu-efi",
- "go-rpm-macros",
- "gom",
- "google-api-python-client",
- "google-crosextra-caladea-fonts",
- "google-crosextra-carlito-fonts",
- "google-guice",
- "google-noto-cjk-fonts",
- "google-noto-emoji-fonts",
- "google-roboto-slab-fonts",
- "gphoto2",
- "gpm",
- "gpsbabel",
- "graphene",
- "graphite2",
- "graphviz",
- "grubby",
- "gsettings-desktop-schemas",
- "gsl",
- "gsm",
- "gspell",
- "gssdp",
- "gssntlmssp",
- "gstreamer1",
- "gstreamer1-plugins-base",
- "gtk-vnc",
- "gtk2",
- "gtk3",
- "gtkspell",
- "gupnp",
- "gupnp-av",
- "gupnp-dlna",
- "gupnp-igd",
- "hardening-check",
- "hdf",
- "hdf5",
- "heimdal",
- "help2man",
- "hexedit",
- "hicolor-icon-theme",
- "hiera",
- "highlight",
- "hivex",
- "hostname",
- "hping3",
- "hsakmt",
- "htop",
- "hunspell",
- "hunspell-af",
- "hunspell-ar",
- "hunspell-as",
- "hunspell-ast",
- "hunspell-az",
- "hunspell-be",
- "hunspell-bg",
- "hunspell-bn",
- "hunspell-br",
- "hunspell-ca",
- "hunspell-cop",
- "hunspell-csb",
- "hunspell-cv",
- "hunspell-cy",
- "hunspell-da",
- "hunspell-de",
- "hunspell-dsb",
- "hunspell-el",
- "hunspell-en",
- "hunspell-eo",
- "hunspell-es",
- "hunspell-et",
- "hunspell-eu",
- "hunspell-fa",
- "hunspell-fj",
- "hunspell-fo",
- "hunspell-fr",
- "hunspell-fur",
- "hunspell-fy",
- "hunspell-ga",
- "hunspell-gd",
- "hunspell-gl",
- "hunspell-grc",
- "hunspell-gu",
- "hunspell-gv",
- "hunspell-haw",
- "hunspell-hi",
- "hunspell-hil",
- "hunspell-hr",
- "hunspell-hsb",
- "hunspell-ht",
- "hunspell-hu",
- "hunspell-hy",
- "hunspell-ia",
- "hunspell-id",
- "hunspell-is",
- "hunspell-it",
- "hunspell-kk",
- "hunspell-km",
- "hunspell-kn",
- "hunspell-ko",
- "hunspell-ku",
- "hunspell-ky",
- "hunspell-la",
- "hunspell-lb",
- "hunspell-ln",
- "hunspell-mai",
- "hunspell-mg",
- "hunspell-mi",
- "hunspell-mk",
- "hunspell-ml",
- "hunspell-mn",
- "hunspell-mos",
- "hunspell-mr",
- "hunspell-ms",
- "hunspell-mt",
- "hunspell-nds",
- "hunspell-ne",
- "hunspell-nl",
- "hunspell-no",
- "hunspell-nr",
- "hunspell-nso",
- "hunspell-ny",
- "hunspell-om",
- "hunspell-or",
- "hunspell-pa",
- "hunspell-pl",
- "hunspell-pt",
- "hunspell-quh",
- "hunspell-ro",
- "hunspell-ru",
- "hunspell-rw",
- "hunspell-se",
- "hunspell-shs",
- "hunspell-si",
- "hunspell-sk",
- "hunspell-sl",
- "hunspell-smj",
- "hunspell-so",
- "hunspell-sq",
- "hunspell-sr",
- "hunspell-sv",
- "hunspell-sw",
- "hunspell-ta",
- "hunspell-te",
- "hunspell-tet",
- "hunspell-th",
- "hunspell-tk",
- "hunspell-tl",
- "hunspell-tn",
- "hunspell-tpi",
- "hunspell-ts",
- "hunspell-uk",
- "hunspell-uz",
- "hunspell-ve",
- "hunspell-vi",
- "hunspell-wa",
- "hunspell-xh",
- "hunspell-yi",
- "hwdata",
- "hwloc",
- "hyperscan",
- "hyperv-daemons",
- "hyphen",
- "hyphen-as",
- "hyphen-bg",
- "hyphen-bn",
- "hyphen-ca",
- "hyphen-da",
- "hyphen-de",
- "hyphen-el",
- "hyphen-es",
- "hyphen-fa",
- "hyphen-fo",
- "hyphen-fr",
- "hyphen-ga",
- "hyphen-gl",
- "hyphen-grc",
- "hyphen-gu",
- "hyphen-hi",
- "hyphen-hsb",
- "hyphen-hu",
- "hyphen-ia",
- "hyphen-id",
- "hyphen-is",
- "hyphen-it",
- "hyphen-kn",
- "hyphen-ku",
- "hyphen-lt",
- "hyphen-mi",
- "hyphen-ml",
- "hyphen-mn",
- "hyphen-mr",
- "hyphen-nl",
- "hyphen-or",
- "hyphen-pa",
- "hyphen-pl",
- "hyphen-pt",
- "hyphen-ro",
- "hyphen-ru",
- "hyphen-sa",
- "hyphen-sk",
- "hyphen-sl",
- "hyphen-sv",
- "hyphen-ta",
- "hyphen-te",
- "hyphen-tk",
- "hyphen-uk",
- "ibus",
- "ibus-chewing",
- "ibus-hangul",
- "ibus-kkc",
- "ibus-libzhuyin",
- "ibus-m17n",
- "ibus-rawcode",
- "ibus-sayura",
- "ibus-table",
- "ibus-table-chinese",
- "icc-profiles-openicc",
- "icon-naming-utils",
- "icoutils",
- "iftop",
- "iio-sensor-proxy",
- "ilmbase",
- "im-chooser",
- "imaptest",
- "imsettings",
- "indent",
- "infinipath-psm",
- "inih",
- "iniparser",
- "intel-cmt-cat",
- "intel-ipsec-mb",
- "ioping",
- "IP2Location",
- "ipa-pgothic-fonts",
- "ipcalc",
- "ipmitool",
- "iprutils",
- "iptraf-ng",
- "iptstate",
- "irssi",
- "iscsi-initiator-utils",
- "isns-utils",
- "iso-codes",
- "isomd5sum",
- "iw",
- "iwd",
- "jabberpy",
- "jakarta-servlet",
- "jasper",
- "javapackages-bootstrap",
- "javapackages-tools",
- "jbigkit",
- "jdom2",
- "jemalloc",
- "jfsutils",
- "jimtcl",
- "jose",
- "js-jquery",
- "jsoncpp",
- "Judy",
- "jurand",
- "kata-containers",
- "kde-filesystem",
- "kde-settings",
- "kexec-tools",
- "keybinder3",
- "keycloak-httpd-client-install",
- "kf",
- "kf-kconfig",
- "kf-kcoreaddons",
- "kf-ki18n",
- "kf-kwidgetsaddons",
- "kpmcore",
- "kronosnet",
- "ksh",
- "kyotocabinet",
- "kyua",
- "ladspa",
- "lame",
- "langtable",
- "lapack",
- "lasso",
- "latencytop",
- "lato-fonts",
- "lcms2",
- "lcov",
- "ldns",
- "leatherman",
- "ledmon",
- "lensfun",
- "leveldb",
- "lftp",
- "libabw",
- "libaec",
- "libao",
- "libappstream-glib",
- "libarrow",
- "libart_lgpl",
- "libasyncns",
- "libatasmart",
- "libavc1394",
- "libblockdev",
- "libbpf",
- "libbsd",
- "libburn",
- "libbytesize",
- "libcacard",
- "libcanberra",
- "libcdio",
- "libcdio-paranoia",
- "libcdr",
- "libcgroup",
- "libchewing",
- "libcli",
- "libcmis",
- "libcmpiutil",
- "libcomps",
- "libcroco",
- "libdaemon",
- "libdap",
- "libdatrie",
- "libdazzle",
- "libdbi",
- "libdbi-drivers",
- "libdbusmenu",
- "libdc1394",
- "libdeflate",
- "libdmx",
- "libdnf",
- "libdrm",
- "libdvdnav",
- "libdvdread",
- "libdwarf",
- "libeasyfc",
- "libecap",
- "libecb",
- "libell",
- "libEMF",
- "libeot",
- "libepoxy",
- "libepubgen",
- "libesmtp",
- "libetonyek",
- "libev",
- "libevdev",
- "libexif",
- "libexttextcat",
- "libfabric",
- "libfontenc",
- "libfreehand",
- "libftdi",
- "libgadu",
- "libgdither",
- "libgee",
- "libgee06",
- "libgeotiff",
- "libgexiv2",
- "libgit2",
- "libgit2-glib",
- "libglade2",
- "libglvnd",
- "libgovirt",
- "libgphoto2",
- "libgsf",
- "libgta",
- "libguestfs",
- "libgusb",
- "libgxim",
- "libgxps",
- "libhangul",
- "libhugetlbfs",
- "libibcommon",
- "libical",
- "libICE",
- "libicns",
- "libid3tag",
- "libIDL",
- "libidn2",
- "libiec61883",
- "libieee1284",
- "libimobiledevice",
- "libindicator",
- "libinput",
- "libiodbc",
- "libipt",
- "libiptcdata",
- "libiscsi",
- "libisoburn",
- "libisofs",
- "libjcat",
- "libkcapi",
- "libkeepalive",
- "libkkc",
- "libkkc-data",
- "libkml",
- "liblangtag",
- "libldb",
- "libldm",
- "liblerc",
- "liblockfile",
- "liblognorm",
- "liblouis",
- "liblqr-1",
- "liblzf",
- "libmad",
- "libmediaart",
- "libmicrohttpd",
- "libmikmod",
- "libmodman",
- "libmodplug",
- "libmodulemd1",
- "libmpcdec",
- "libmspub",
- "libmtp",
- "libmusicbrainz5",
- "libmwaw",
- "libnbd",
- "libnet",
- "libnetfilter_log",
- "libnfs",
- "libnotify",
- "libntlm",
- "libnumbertext",
- "libnvme",
- "liboauth",
- "libodfgen",
- "libofa",
- "libogg",
- "liboggz",
- "liboil",
- "libomxil-bellagio",
- "libopenraw",
- "liboping",
- "libosinfo",
- "libotf",
- "libotr",
- "libpagemaker",
- "libpaper",
- "libpciaccess",
- "libpeas",
- "libpfm",
- "libpinyin",
- "libplist",
- "libpmemobj-cpp",
- "libpng12",
- "libpng15",
- "libproxy",
- "libpsm2",
- "libpwquality",
- "libqb",
- "libqxp",
- "libraqm",
- "LibRaw",
- "libraw1394",
- "libreport",
- "libreswan",
- "librevenge",
- "librsvg2",
- "librx",
- "libsamplerate",
- "libsass",
- "libsecret",
- "libsemanage",
- "libsigc++20",
- "libsigsegv",
- "libslirp",
- "libSM",
- "libsmbios",
- "libsmi",
- "libsndfile",
- "libsodium",
- "libspiro",
- "libsrtp",
- "libssh",
- "libstaroffice",
- "libstemmer",
- "libstoragemgmt",
- "libtdb",
- "libteam",
- "libtevent",
- "libthai",
- "libtnc",
- "libtomcrypt",
- "libtommath",
- "libtpms",
- "libtracecmd",
- "libtraceevent",
- "libtracefs",
- "libtranslit",
- "libucil",
- "libunicap",
- "libuninameslist",
- "liburing",
- "libusbmuxd",
- "libuser",
- "libutempter",
- "libvarlink",
- "libverto",
- "libvirt-dbus",
- "libvirt-glib",
- "libvirt-java",
- "libvirt-python",
- "libvisio",
- "libvisual",
- "libvoikko",
- "libvorbis",
- "libvpx",
- "libwacom",
- "libwnck3",
- "libwpd",
- "libwpe",
- "libwpg",
- "libwps",
- "libwvstreams",
- "libX11",
- "libXau",
- "libXaw",
- "libxcb",
- "libXcomposite",
- "libxcrypt",
- "libXcursor",
- "libXdamage",
- "libXdmcp",
- "libXext",
- "libxfce4util",
- "libXfixes",
- "libXfont2",
- "libXft",
- "libXi",
- "libXinerama",
- "libxkbcommon",
- "libxkbfile",
- "libxklavier",
- "libxmlb",
- "libXmu",
- "libXpm",
- "libXrandr",
- "libXrender",
- "libXres",
- "libXScrnSaver",
- "libxshmfence",
- "libXt",
- "libXtst",
- "libXv",
- "libXxf86vm",
- "libyami",
- "libyang",
- "libyubikey",
- "libzip",
- "libzmf",
- "lilv",
- "linuxconsoletools",
- "linuxptp",
- "lksctp-tools",
- "lldpd",
- "lockdev",
- "logwatch",
- "lpsolve",
- "lrzsz",
- "lua",
- "lua-expat",
- "lua-filesystem",
- "lua-json",
- "lua-lpeg",
- "lua-lunit",
- "lua-rpm-macros",
- "lua-term",
- "luajit",
- "lujavrite",
- "luksmeta",
- "lutok",
- "lv2",
- "lzip",
- "lzop",
- "m17n-db",
- "m17n-lib",
- "mac-robber",
- "mailcap",
- "mailx",
- "malaga",
- "malaga-suomi-voikko",
- "mallard-rng",
- "man-pages-cs",
- "man-pages-es",
- "man-pages-it",
- "man-pages-ja",
- "man-pages-ko",
- "man-pages-pl",
- "man-pages-ru",
- "man-pages-zh-CN",
- "mandoc",
- "mariadb-connector-c",
- "mariadb-connector-odbc",
- "marisa",
- "maven-compiler-plugin",
- "maven-jar-plugin",
- "maven-resolver",
- "maven-resources-plugin",
- "maven-surefire",
- "maven-wagon",
- "mcelog",
- "mcpp",
- "mcstrans",
- "mdadm",
- "mdds",
- "mdevctl",
- "meanwhile",
- "mecab",
- "mecab-ipadic",
- "media-player-info",
- "memcached",
- "memkind",
- "mesa",
- "mesa-libGLU",
- "metis",
- "microcode_ctl",
- "microdnf",
- "minicom",
- "minizip",
- "mksh",
- "mobile-broadband-provider-info",
- "mock",
- "mock-core-configs",
- "mod_auth_gssapi",
- "mod_auth_mellon",
- "mod_auth_openidc",
- "mod_authnz_pam",
- "mod_fcgid",
- "mod_http2",
- "mod_intercept_form_submit",
- "mod_lookup_identity",
- "mod_md",
- "mod_security",
- "mod_security_crs",
- "mod_wsgi",
- "mokutil",
- "mozjs",
- "mpage",
- "mrtg",
- "mstflint",
- "mt-st",
- "mtdev",
- "mtools",
- "mtr",
- "mtx",
- "munge",
- "mutt",
- "mythes",
- "mythes-bg",
- "mythes-ca",
- "mythes-cs",
- "mythes-da",
- "mythes-de",
- "mythes-el",
- "mythes-en",
- "mythes-eo",
- "mythes-es",
- "mythes-fr",
- "mythes-ga",
- "mythes-hu",
- "mythes-mi",
- "mythes-ne",
- "mythes-nl",
- "mythes-pl",
- "mythes-pt",
- "mythes-ro",
- "mythes-ru",
- "mythes-sk",
- "mythes-sl",
- "mythes-sv",
- "mythes-uk",
- "nbd",
- "nbdkit",
- "neon",
- "netavark",
- "netcdf",
- "netcf",
- "netlabel_tools",
- "netpbm",
- "netsniff-ng",
- "nfs4-acl-tools",
- "nftables",
- "nilfs-utils",
- "nkf",
- "nload",
- "nlopt",
- "nodejs-packaging",
- "nss-mdns",
- "nss-pam-ldapd",
- "nss_nis",
- "nss_wrapper",
- "ntfs-3g",
- "ntfs-3g-system-compression",
- "numad",
- "numatop",
- "numpy",
- "nvmetcli",
- "nvml",
- "oath-toolkit",
- "ocaml",
- "ocaml-alcotest",
- "ocaml-astring",
- "ocaml-augeas",
- "ocaml-base",
- "ocaml-bigarray-compat",
- "ocaml-bisect-ppx",
- "ocaml-calendar",
- "ocaml-camlp5",
- "ocaml-camomile",
- "ocaml-cinaps",
- "ocaml-cmdliner",
- "ocaml-compiler-libs-janestreet",
- "ocaml-cppo",
- "ocaml-csexp",
- "ocaml-csv",
- "ocaml-ctypes",
- "ocaml-curses",
- "ocaml-dune",
- "ocaml-extlib",
- "ocaml-fileutils",
- "ocaml-findlib",
- "ocaml-fmt",
- "ocaml-fpath",
- "ocaml-gettext",
- "ocaml-integers",
- "ocaml-libvirt",
- "ocaml-luv",
- "ocaml-lwt",
- "ocaml-markup",
- "ocaml-migrate-parsetree",
- "ocaml-mmap",
- "ocaml-num",
- "ocaml-ocamlbuild",
- "ocaml-ocplib-endian",
- "ocaml-ounit",
- "ocaml-parsexp",
- "ocaml-ppx-derivers",
- "ocaml-ppxlib",
- "ocaml-re",
- "ocaml-react",
- "ocaml-result",
- "ocaml-seq",
- "ocaml-sexplib",
- "ocaml-sexplib0",
- "ocaml-stdio",
- "ocaml-topkg",
- "ocaml-tyxml",
- "ocaml-uuidm",
- "ocaml-uutf",
- "ocaml-xml-light",
- "ocaml-zarith",
- "ocl-icd",
- "oddjob",
- "ogdi",
- "omping",
- "opa",
- "opal",
- "open-vm-tools",
- "openblas",
- "opencc",
- "opencl-filesystem",
- "opencl-headers",
- "opencryptoki",
- "opencsd",
- "opendnssec",
- "OpenEXR",
- "openjade",
- "openjpeg2",
- "openmpi",
- "openobex",
- "openoffice-lv",
- "openrdate",
- "opensc",
- "openslp",
- "opensm",
- "opensp",
- "openssl",
- "openssl-ibmpkcs11",
- "openssl-pkcs11",
- "openwsman",
- "optipng",
- "opus",
- "opusfile",
- "orangefs",
- "ORBit2",
- "orc",
- "os-prober",
- "osinfo-db",
- "osinfo-db-tools",
- "overpass-fonts",
- "p11-kit",
- "p7zip",
- "pacemaker",
- "pacrunner",
- "pakchois",
- "pam_krb5",
- "pam_wrapper",
- "papi",
- "paps",
- "parallel",
- "patchelf",
- "patchutils",
- "pbzip2",
- "pcp",
- "pcsc-lite",
- "pcsc-lite-ccid",
- "PEGTL",
- "perl",
- "perl-Algorithm-C3",
- "perl-Algorithm-Diff",
- "perl-Alien-Build",
- "perl-Alien-pkgconf",
- "perl-AnyEvent",
- "perl-AnyEvent-AIO",
- "perl-AnyEvent-BDB",
- "perl-App-cpanminus",
- "perl-App-FatPacker",
- "perl-AppConfig",
- "perl-Archive-Extract",
- "perl-Archive-Zip",
- "perl-Authen-SASL",
- "perl-B-COW",
- "perl-B-Debug",
- "perl-B-Hooks-EndOfScope",
- "perl-B-Hooks-OP-Check",
- "perl-B-Keywords",
- "perl-B-Lint",
- "perl-bareword-filehandles",
- "perl-BDB",
- "perl-Bit-Vector",
- "perl-boolean",
- "perl-Browser-Open",
- "perl-BSD-Resource",
- "perl-Business-ISBN",
- "perl-Business-ISBN-Data",
- "perl-Bytes-Random-Secure",
- "perl-Capture-Tiny",
- "perl-Carp-Clan",
- "perl-CBOR-XS",
- "perl-Class-Accessor",
- "perl-Class-C3",
- "perl-Class-C3-XS",
- "perl-Class-Data-Inheritable",
- "perl-Class-Factory-Util",
- "perl-Class-Inspector",
- "perl-Class-ISA",
- "perl-Class-Load",
- "perl-Class-Load-XS",
- "perl-Class-Method-Modifiers",
- "perl-Class-Singleton",
- "perl-Class-Tiny",
- "perl-Class-XSAccessor",
- "perl-Clone",
- "perl-Color-ANSI-Util",
- "perl-Color-RGB-Util",
- "perl-ColorThemeBase-Static",
- "perl-ColorThemeRole-ANSI",
- "perl-ColorThemes-Standard",
- "perl-ColorThemeUtil-ANSI",
- "perl-Compress-Bzip2",
- "perl-Compress-LZF",
- "perl-Compress-Raw-Lzma",
- "perl-Config-AutoConf",
- "perl-Config-INI",
- "perl-Config-INI-Reader-Multiline",
- "perl-Config-IniFiles",
- "perl-Config-Simple",
- "perl-Config-Tiny",
- "perl-Const-Fast",
- "perl-Convert-ASN1",
- "perl-Convert-Bencode",
- "perl-Coro",
- "perl-Coro-Multicore",
- "perl-CPAN-Changes",
- "perl-CPAN-DistnameInfo",
- "perl-CPAN-Meta-Check",
- "perl-Cpanel-JSON-XS",
- "perl-Crypt-CBC",
- "perl-Crypt-DES",
- "perl-Crypt-IDEA",
- "perl-Crypt-OpenSSL-Bignum",
- "perl-Crypt-OpenSSL-Guess",
- "perl-Crypt-OpenSSL-Random",
- "perl-Crypt-OpenSSL-RSA",
- "perl-Crypt-PasswdMD5",
- "perl-Crypt-Random-Seed",
- "perl-CSS-Tiny",
- "perl-Data-Dump",
- "perl-Data-Munge",
- "perl-Data-OptList",
- "perl-Data-Peek",
- "perl-Data-Section",
- "perl-Data-UUID",
- "perl-Date-Calc",
- "perl-Date-ISO8601",
- "perl-Date-Manip",
- "perl-DateTime",
- "perl-DateTime-Format-Builder",
- "perl-DateTime-Format-DateParse",
- "perl-DateTime-Format-HTTP",
- "perl-DateTime-Format-IBeat",
- "perl-DateTime-Format-ISO8601",
- "perl-DateTime-Format-Mail",
- "perl-DateTime-Format-Strptime",
- "perl-DateTime-Locale",
- "perl-DateTime-TimeZone",
- "perl-DateTime-TimeZone-SystemV",
- "perl-DateTime-TimeZone-Tzfile",
- "perl-DBD-MySQL",
- "perl-Devel-CallChecker",
- "perl-Devel-Caller",
- "perl-Devel-CheckBin",
- "perl-Devel-CheckLib",
- "perl-Devel-Cycle",
- "perl-Devel-EnforceEncapsulation",
- "perl-Devel-GlobalDestruction",
- "perl-Devel-GlobalDestruction-XS",
- "perl-Devel-Hide",
- "perl-Devel-Leak",
- "perl-Devel-LexAlias",
- "perl-Devel-Size",
- "perl-Devel-StackTrace",
- "perl-Devel-Symdump",
- "perl-Digest-BubbleBabble",
- "perl-Digest-CRC",
- "perl-Digest-HMAC",
- "perl-Digest-SHA1",
- "perl-Dist-CheckConflicts",
- "perl-DynaLoader-Functions",
- "perl-Email-Address",
- "perl-Email-Date-Format",
- "perl-Encode-Detect",
- "perl-Encode-EUCJPASCII",
- "perl-Encode-IMAPUTF7",
- "perl-Encode-Locale",
- "perl-Env-ShellWords",
- "perl-Error",
- "perl-EV",
- "perl-Eval-Closure",
- "perl-Event",
- "perl-Exception-Class",
- "perl-Expect",
- "perl-ExtUtils-Config",
- "perl-ExtUtils-Depends",
- "perl-ExtUtils-Helpers",
- "perl-ExtUtils-InstallPaths",
- "perl-ExtUtils-PkgConfig",
- "perl-FCGI",
- "perl-Fedora-VSP",
- "perl-FFI-CheckLib",
- "perl-File-BaseDir",
- "perl-File-BOM",
- "perl-File-chdir",
- "perl-File-CheckTree",
- "perl-File-Copy-Recursive",
- "perl-File-DesktopEntry",
- "perl-File-Find-Object",
- "perl-File-Find-Object-Rule",
- "perl-File-Find-Rule",
- "perl-File-Find-Rule-Perl",
- "perl-File-Inplace",
- "perl-File-Listing",
- "perl-File-MimeInfo",
- "perl-File-pushd",
- "perl-File-ReadBackwards",
- "perl-File-Remove",
- "perl-File-ShareDir",
- "perl-File-ShareDir-Install",
- "perl-File-Slurp",
- "perl-File-Slurp-Tiny",
- "perl-File-Slurper",
- "perl-File-Type",
- "perl-Font-TTF",
- "perl-FreezeThaw",
- "perl-GD",
- "perl-GD-Barcode",
- "perl-generators",
- "perl-Getopt-ArgvFile",
- "perl-gettext",
- "perl-Graphics-ColorNamesLite-WWW",
- "perl-GSSAPI",
- "perl-Guard",
- "perl-Hook-LexWrap",
- "perl-HTML-Parser",
- "perl-HTML-Tagset",
- "perl-HTML-Tree",
- "perl-HTTP-Cookies",
- "perl-HTTP-Daemon",
- "perl-HTTP-Date",
- "perl-HTTP-Message",
- "perl-HTTP-Negotiate",
- "perl-Image-Base",
- "perl-Image-Info",
- "perl-Image-Xbm",
- "perl-Image-Xpm",
- "perl-Import-Into",
- "perl-Importer",
- "perl-inc-latest",
- "perl-indirect",
- "perl-Inline-Files",
- "perl-IO-AIO",
- "perl-IO-All",
- "perl-IO-CaptureOutput",
- "perl-IO-Compress-Lzma",
- "perl-IO-HTML",
- "perl-IO-Multiplex",
- "perl-IO-SessionData",
- "perl-IO-Socket-INET6",
- "perl-IO-String",
- "perl-IO-stringy",
- "perl-IO-Tty",
- "perl-IPC-Run",
- "perl-IPC-Run3",
- "perl-IPC-System-Simple",
- "perl-JSON",
- "perl-JSON-Color",
- "perl-JSON-MaybeXS",
- "perl-LDAP",
- "perl-libnet",
- "perl-libwww-perl",
- "perl-libxml-perl",
- "perl-Lingua-EN-Inflect",
- "perl-List-MoreUtils-XS",
- "perl-local-lib",
- "perl-Locale-Codes",
- "perl-Locale-Maketext-Gettext",
- "perl-Locale-Msgfmt",
- "perl-Locale-PO",
- "perl-Log-Message",
- "perl-Log-Message-Simple",
- "perl-LWP-MediaTypes",
- "perl-LWP-Protocol-https",
- "perl-Mail-AuthenticationResults",
- "perl-Mail-DKIM",
- "perl-Mail-IMAPTalk",
- "perl-Mail-SPF",
- "perl-MailTools",
- "perl-Math-Int64",
- "perl-Math-Random-ISAAC",
- "perl-MIME-Charset",
- "perl-MIME-Lite",
- "perl-MIME-Types",
- "perl-Mixin-Linewise",
- "perl-MLDBM",
- "perl-Mock-Config",
- "perl-Module-Build-Tiny",
- "perl-Module-CPANfile",
- "perl-Module-Implementation",
- "perl-Module-Install-AuthorRequires",
- "perl-Module-Install-AuthorTests",
- "perl-Module-Install-AutoLicense",
- "perl-Module-Install-GithubMeta",
- "perl-Module-Install-ManifestSkip",
- "perl-Module-Install-ReadmeFromPod",
- "perl-Module-Install-ReadmeMarkdownFromPod",
- "perl-Module-Install-Repository",
- "perl-Module-Install-TestBase",
- "perl-Module-Load-Util",
- "perl-Module-Manifest",
- "perl-Module-Manifest-Skip",
- "perl-Module-Package",
- "perl-Module-Package-Au",
- "perl-Module-Pluggable",
- "perl-Module-Runtime",
- "perl-Module-Signature",
- "perl-Mojolicious",
- "perl-Moo",
- "perl-Mozilla-CA",
- "perl-Mozilla-LDAP",
- "perl-MRO-Compat",
- "perl-multidimensional",
- "perl-namespace-autoclean",
- "perl-namespace-clean",
- "perl-Net-CIDR-Lite",
- "perl-Net-Daemon",
- "perl-Net-DNS",
- "perl-Net-DNS-Resolver-Mock",
- "perl-Net-DNS-Resolver-Programmable",
- "perl-Net-HTTP",
- "perl-Net-IMAP-Simple",
- "perl-Net-IMAP-Simple-SSL",
- "perl-Net-IP",
- "perl-Net-LibIDN2",
- "perl-Net-Patricia",
- "perl-Net-SMTP-SSL",
- "perl-Net-SNMP",
- "perl-Net-Telnet",
- "perl-Newt",
- "perl-NNTPClient",
- "perl-NTLM",
- "perl-Number-Compare",
- "perl-Object-Deadly",
- "perl-Object-HashBase",
- "perl-Package-Anon",
- "perl-Package-Constants",
- "perl-Package-DeprecationManager",
- "perl-Package-Generator",
- "perl-Package-Stash",
- "perl-Package-Stash-XS",
- "perl-PadWalker",
- "perl-Paper-Specs",
- "perl-PAR-Dist",
- "perl-Parallel-Iterator",
- "perl-Params-Classify",
- "perl-Params-Util",
- "perl-Params-Validate",
- "perl-Params-ValidationCompiler",
- "perl-Parse-PMFile",
- "perl-Parse-RecDescent",
- "perl-Parse-Yapp",
- "perl-Path-Tiny",
- "perl-Perl-Critic",
- "perl-Perl-Critic-More",
- "perl-Perl-Destruct-Level",
- "perl-Perl-MinimumVersion",
- "perl-Perl4-CoreLibs",
- "perl-PerlIO-gzip",
- "perl-PerlIO-utf8_strict",
- "perl-PkgConfig-LibPkgConf",
- "perl-Pod-Coverage",
- "perl-Pod-Coverage-TrustPod",
- "perl-Pod-Escapes",
- "perl-Pod-Eventual",
- "perl-Pod-LaTeX",
- "perl-Pod-Markdown",
- "perl-Pod-Parser",
- "perl-Pod-Plainer",
- "perl-Pod-POM",
- "perl-Pod-Spell",
- "perl-PPI",
- "perl-PPI-HTML",
- "perl-PPIx-QuoteLike",
- "perl-PPIx-Regexp",
- "perl-PPIx-Utilities",
- "perl-prefork",
- "perl-Probe-Perl",
- "perl-Razor-Agent",
- "perl-Readonly",
- "perl-Readonly-XS",
- "perl-Ref-Util",
- "perl-Ref-Util-XS",
- "perl-Regexp-Pattern-Perl",
- "perl-Return-MultiLevel",
- "perl-Role-Tiny",
- "perl-Scope-Guard",
- "perl-Scope-Upper",
- "perl-SGMLSpm",
- "perl-SNMP_Session",
- "perl-Socket6",
- "perl-Software-License",
- "perl-Sort-Versions",
- "perl-Specio",
- "perl-Spiffy",
- "perl-strictures",
- "perl-String-CRC32",
- "perl-String-Format",
- "perl-String-ShellQuote",
- "perl-String-Similarity",
- "perl-Sub-Exporter",
- "perl-Sub-Exporter-Progressive",
- "perl-Sub-Identify",
- "perl-Sub-Info",
- "perl-Sub-Install",
- "perl-Sub-Name",
- "perl-Sub-Quote",
- "perl-Sub-Uplevel",
- "perl-SUPER",
- "perl-Switch",
- "perl-Syntax-Highlight-Engine-Kate",
- "perl-Sys-CPU",
- "perl-Sys-MemInfo",
- "perl-Sys-Virt",
- "perl-Taint-Runtime",
- "perl-Task-Weaken",
- "perl-Term-Size-Any",
- "perl-Term-Size-Perl",
- "perl-Term-Table",
- "perl-Term-UI",
- "perl-TermReadKey",
- "perl-Test-Base",
- "perl-Test-ClassAPI",
- "perl-Test-CPAN-Meta",
- "perl-Test-CPAN-Meta-JSON",
- "perl-Test-Deep",
- "perl-Test-Differences",
- "perl-Test-DistManifest",
- "perl-Test-Distribution",
- "perl-Test-EOL",
- "perl-Test-Exception",
- "perl-Test-Exit",
- "perl-Test-FailWarnings",
- "perl-Test-Fatal",
- "perl-Test-File",
- "perl-Test-File-ShareDir",
- "perl-Test-Harness",
- "perl-Test-HasVersion",
- "perl-Test-InDistDir",
- "perl-Test-Inter",
- "perl-Test-LeakTrace",
- "perl-Test-LongString",
- "perl-Test-Manifest",
- "perl-Test-Memory-Cycle",
- "perl-Test-MinimumVersion",
- "perl-Test-MockObject",
- "perl-Test-MockRandom",
- "perl-Test-Needs",
- "perl-Test-NoTabs",
- "perl-Test-NoWarnings",
- "perl-Test-Object",
- "perl-Test-Output",
- "perl-Test-Pod",
- "perl-Test-Pod-Coverage",
- "perl-Test-Portability-Files",
- "perl-Test-Requires",
- "perl-Test-RequiresInternet",
- "perl-Test-Script",
- "perl-Test-Simple",
- "perl-Test-SubCalls",
- "perl-Test-Synopsis",
- "perl-Test-Taint",
- "perl-Test-TrailingSpace",
- "perl-Test-utf8",
- "perl-Test-Vars",
- "perl-Test-Warn",
- "perl-Test-Without-Module",
- "perl-Test2-Plugin-NoWarnings",
- "perl-Test2-Suite",
- "perl-Test2-Tools-Explain",
- "perl-Text-CharWidth",
- "perl-Text-CSV_XS",
- "perl-Text-Diff",
- "perl-Text-Glob",
- "perl-Text-Iconv",
- "perl-Text-Soundex",
- "perl-Text-Unidecode",
- "perl-Text-WrapI18N",
- "perl-Tie-IxHash",
- "perl-TimeDate",
- "perl-Tree-DAG_Node",
- "perl-Unicode-EastAsianWidth",
- "perl-Unicode-LineBreak",
- "perl-Unicode-Map8",
- "perl-Unicode-String",
- "perl-Unicode-UTF8",
- "perl-UNIVERSAL-can",
- "perl-UNIVERSAL-isa",
- "perl-Unix-Syslog",
- "perl-URI",
- "perl-Variable-Magic",
- "perl-Version-Requirements",
- "perl-WWW-RobotRules",
- "perl-XML-Catalog",
- "perl-XML-DOM",
- "perl-XML-Dumper",
- "perl-XML-Filter-BufferText",
- "perl-XML-Generator",
- "perl-XML-Grove",
- "perl-XML-Handler-YAWriter",
- "perl-XML-LibXML",
- "perl-XML-LibXSLT",
- "perl-XML-NamespaceSupport",
- "perl-XML-Parser-Lite",
- "perl-XML-RegExp",
- "perl-XML-SAX",
- "perl-XML-SAX-Base",
- "perl-XML-SAX-Writer",
- "perl-XML-Simple",
- "perl-XML-TokeParser",
- "perl-XML-TreeBuilder",
- "perl-XML-Twig",
- "perl-XML-Writer",
- "perl-XML-XPath",
- "perl-XML-XPathEngine",
- "perl-XString",
- "perl-YAML-LibYAML",
- "perl-YAML-PP",
- "perl-YAML-Syck",
- "perltidy",
- "pesign",
- "phodav",
- "php",
- "php-pear",
- "php-pecl-zip",
- "physfs",
- "picosat",
- "pinfo",
- "pipewire",
- "pixman",
- "pkcs11-helper",
- "pkgconf",
- "plexus-cipher",
- "plexus-containers",
- "plexus-sec-dispatcher",
- "plotutils",
- "pmdk-convert",
- "pmix",
- "pngcrush",
- "pngnq",
- "po4a",
- "podman",
- "poetry",
- "policycoreutils",
- "polkit-pkla-compat",
- "polkit-qt-1",
- "portreserve",
- "postfix",
- "potrace",
- "powertop",
- "ppp",
- "pps-tools",
- "pptp",
- "priv_wrapper",
- "procmail",
- "prometheus",
- "prometheus-node-exporter",
- "ps_mem",
- "psacct",
- "psutils",
- "ptlib",
- "publicsuffix-list",
- "pugixml",
- "pulseaudio",
- "puppet",
- "pwgen",
- "pyatspi",
- "pybind11",
- "pycairo",
- "pyelftools",
- "pyflakes",
- "pygobject3",
- "PyGreSQL",
- "pykickstart",
- "pylint",
- "pyparted",
- "pyproject-rpm-macros",
- "pyserial",
- "python-absl-py",
- "python-aiodns",
- "python-aiohttp",
- "python-alsa",
- "python-argcomplete",
- "python-astroid",
- "python-astunparse",
- "python-async-generator",
- "python-augeas",
- "python-azure-sdk",
- "python-beautifulsoup4",
- "python-betamax",
- "python-blinker",
- "python-blivet",
- "python-cached_property",
- "python-charset-normalizer",
- "python-cheetah",
- "python-click",
- "python-cmd2",
- "python-colorama",
- "python-CommonMark",
- "python-conda-package-handling",
- "python-configshell",
- "python-cpuinfo",
- "python-cups",
- "python-curio",
- "python-cytoolz",
- "python-d2to1",
- "python-dbus-client-gen",
- "python-dbus-python-client-gen",
- "python-dbus-signature-pyparsing",
- "python-dbusmock",
- "python-ddt",
- "python-debtcollector",
- "python-decorator",
- "python-distlib",
- "python-dmidecode",
- "python-dns",
- "python-dtopt",
- "python-dulwich",
- "python-editables",
- "python-enchant",
- "python-entrypoints",
- "python-ethtool",
- "python-evdev",
- "python-extras",
- "python-faker",
- "python-fasteners",
- "python-fastjsonschema",
- "python-fields",
- "python-filelock",
- "python-fixtures",
- "python-flake8",
- "python-flask",
- "python-flit",
- "python-flit-core",
- "python-fluidity-sm",
- "python-frozendict",
- "python-funcsigs",
- "python-gast",
- "python-genshi",
- "python-google-auth",
- "python-google-auth-oauthlib",
- "python-greenlet",
- "python-gssapi",
- "python-h5py",
- "python-hatch-fancy-pypi-readme",
- "python-hatch-vcs",
- "python-hatchling",
- "python-hs-dbus-signature",
- "python-html5lib",
- "python-httplib2",
- "python-humanize",
- "python-hwdata",
- "python-importlib-metadata",
- "python-inotify",
- "python-into-dbus-python",
- "python-IPy",
- "python-iso8601",
- "python-isodate",
- "python-isort",
- "python-itsdangerous",
- "python-justbases",
- "python-justbytes",
- "python-jwcrypto",
- "python-jwt",
- "python-kdcproxy",
- "python-kerberos",
- "python-kmod",
- "python-kubernetes",
- "python-lark",
- "python-lazy-object-proxy",
- "python-ldap",
- "python-linux-procfs",
- "python-lit",
- "python-looseversion",
- "python-markdown",
- "python-markdown-it-py",
- "python-mccabe",
- "python-mdurl",
- "python-memcached",
- "python-mimeparse",
- "python-mock",
- "python-monotonic",
- "python-more-itertools",
- "python-mpmath",
- "python-msal",
- "python-msrestazure",
- "python-mutagen",
- "python-networkx",
- "python-nose2",
- "python-ntlm-auth",
- "python-oauth2client",
- "python-openpyxl",
- "python-openstackdocstheme",
- "python-oslo-i18n",
- "python-oslo-sphinx",
- "python-paramiko",
- "python-pathspec",
- "python-pefile",
- "python-pexpect",
- "python-pkgconfig",
- "python-platformdirs",
- "python-pluggy",
- "python-podman-api",
- "python-poetry-core",
- "python-process-tests",
- "python-productmd",
- "python-ptyprocess",
- "python-pycares",
- "python-pycosat",
- "python-pydbus",
- "python-pymongo",
- "python-PyMySQL",
- "python-pyperclip",
- "python-pyroute2",
- "python-pyrsistent",
- "python-pysocks",
- "python-pytest-benchmark",
- "python-pytest-cov",
- "python-pytest-expect",
- "python-pytest-flake8",
- "python-pytest-flakes",
- "python-pytest-forked",
- "python-pytest-mock",
- "python-pytest-relaxed",
- "python-pytest-runner",
- "python-pytest-subtests",
- "python-pytest-timeout",
- "python-pytest-xdist",
- "python-pytoml",
- "python-pyudev",
- "python-pywbem",
- "python-qrcode",
- "python-rdflib",
- "python-recommonmark",
- "python-requests-file",
- "python-requests-ftp",
- "python-requests-kerberos",
- "python-requests-mock",
- "python-requests-oauthlib",
- "python-requests-toolbelt",
- "python-requests_ntlm",
- "python-responses",
- "python-retrying",
- "python-rfc3986",
- "python-rich",
- "python-rpm-generators",
- "python-rpmfluff",
- "python-rtslib",
- "python-ruamel-yaml",
- "python-ruamel-yaml-clib",
- "python-s3transfer",
- "python-schedutils",
- "python-semantic_version",
- "python-should_dsl",
- "python-simpleline",
- "python-slip",
- "python-sniffio",
- "python-sortedcontainers",
- "python-soupsieve",
- "python-sphinx",
- "python-sphinx-epytext",
- "python-sphinx-theme-py3doc-enhanced",
- "python-sphinx_rtd_theme",
- "python-sphinxcontrib-apidoc",
- "python-sphinxcontrib-applehelp",
- "python-sphinxcontrib-devhelp",
- "python-sphinxcontrib-htmlhelp",
- "python-sphinxcontrib-httpdomain",
- "python-sphinxcontrib-jsmath",
- "python-sphinxcontrib-qthelp",
- "python-sphinxcontrib-serializinghtml",
- "python-sqlalchemy",
- "python-suds",
- "python-systemd",
- "python-tempita",
- "python-templated-dictionary",
- "python-termcolor",
- "python-testpath",
- "python-testresources",
- "python-testscenarios",
- "python-testtools",
- "python-tidy",
- "python-toml",
- "python-tomli",
- "python-toolz",
- "python-tornado",
- "python-tox",
- "python-tox-current-env",
- "python-tqdm",
- "python-trio",
- "python-trove-classifiers",
- "python-typing-extensions",
- "python-uamqp",
- "python-unittest2",
- "python-uritemplate",
- "python-urwid",
- "python-varlink",
- "python-versioneer",
- "python-virt-firmware",
- "python-voluptuous",
- "python-waitress",
- "python-webencodings",
- "python-webtest",
- "python-wheel",
- "python-whoosh",
- "python-winrm",
- "python-wrapt",
- "python-xmltodict",
- "python-yubico",
- "python-zipp",
- "python-zmq",
- "python-zstd",
- "python3-mallard-ducktype",
- "python3-pytest-asyncio",
- "python3-typed_ast",
- "pyusb",
- "pywbem",
- "pyxattr",
- "qemu",
- "qhull",
- "qpdf",
- "qperf",
- "qr-code-generator",
- "qt-rpm-macros",
- "qt5-qtconnectivity",
- "qt5-qtsensors",
- "qt5-qtserialport",
- "qtbase",
- "qtdeclarative",
- "qtsvg",
- "qttools",
- "quagga",
- "quota",
- "radvd",
- "ragel",
- "raptor2",
- "rarian",
- "rasdaemon",
- "rasqal",
- "rcs",
- "rdist",
- "rdma-core",
- "re2",
- "re2c",
- "realmd",
- "rear",
- "recode",
- "redland",
- "resource-agents",
- "rest",
- "rhash",
- "rlwrap",
- "rp-pppoe",
- "rpm-mpi-hooks",
- "rpmdevtools",
- "rpmlint",
- "rtkit",
- "rtl-sdr",
- "ruby-augeas",
- "rubygem-bson",
- "rubygem-coderay",
- "rubygem-diff-lcs",
- "rubygem-flexmock",
- "rubygem-hpricot",
- "rubygem-introspection",
- "rubygem-liquid",
- "rubygem-maruku",
- "rubygem-metaclass",
- "rubygem-mongo",
- "rubygem-mustache",
- "rubygem-mysql2",
- "rubygem-pkg-config",
- "rubygem-rake",
- "rubygem-rake-compiler",
- "rubygem-ronn",
- "rubygem-rouge",
- "rubygem-rspec",
- "rubygem-rspec-expectations",
- "rubygem-rspec-mocks",
- "rubygem-rspec-support",
- "rubygem-thread_order",
- "rusers",
- "rust-cbindgen",
- "samba",
- "sanlock",
- "sassist",
- "satyr",
- "sbc",
- "sblim-cim-client2",
- "sblim-cmpi-base",
- "sblim-cmpi-devel",
- "sblim-cmpi-fsvol",
- "sblim-cmpi-network",
- "sblim-cmpi-nfsv3",
- "sblim-cmpi-nfsv4",
- "sblim-cmpi-params",
- "sblim-cmpi-sysfs",
- "sblim-cmpi-syslog",
- "sblim-indication_helper",
- "sblim-sfcb",
- "sblim-sfcc",
- "sblim-sfcCommon",
- "sblim-testsuite",
- "sblim-wbemcli",
- "scl-utils",
- "scotch",
- "screen",
- "scrub",
- "SDL",
- "SDL2",
- "SDL_sound",
- "sdparm",
- "seabios",
- "secilc",
- "selinux-policy",
- "sendmail",
- "serd",
- "setools",
- "setserial",
- "setuptool",
- "sgabios",
- "sgml-common",
- "sgpio",
- "shared-mime-info",
- "sharutils",
- "sip",
- "sisu",
- "skkdic",
- "sleuthkit",
- "slirp4netns",
- "smartmontools",
- "smc-tools",
- "socket_wrapper",
- "softhsm",
- "sombok",
- "sord",
- "sos",
- "sound-theme-freedesktop",
- "soundtouch",
- "sox",
- "soxr",
- "sparsehash",
- "spausedd",
- "speex",
- "speexdsp",
- "spice-protocol",
- "spice-vdagent",
- "spirv-headers",
- "spirv-tools",
- "splix",
- "squashfs-tools",
- "squid",
- "sratom",
- "sscg",
- "star",
- "startup-notification",
- "stunnel",
- "subscription-manager",
- "suitesparse",
- "SuperLU",
- "supermin",
- "switcheroo-control",
- "swtpm",
- "symlinks",
- "sympy",
- "sysfsutils",
- "systemd",
- "systemd-bootchart",
- "t1lib",
- "t1utils",
- "taglib",
- "tang",
- "targetcli",
- "tbb",
- "tcl-pgtcl",
- "tclx",
- "teckit",
- "telnet",
- "thrift",
- "tidy",
- "time",
- "tini",
- "tinycdb",
- "tix",
- "tk",
- "tlog",
- "tmpwatch",
- "tn5250",
- "tofrodos",
- "tokyocabinet",
- "trace-cmd",
- "tss2",
- "ttembed",
- "ttmkfdir",
- "tuna",
- "twolame",
- "uchardet",
- "uclibc-ng",
- "ucpp",
- "ucs-miscfixed-fonts",
- "ucx",
- "udftools",
- "udica",
- "udisks2",
- "uglify-js",
- "uid_wrapper",
- "unicode-emoji",
- "unicode-ucd",
- "unique3",
- "units",
- "upower",
- "uriparser",
- "urlview",
- "usb_modeswitch",
- "usb_modeswitch-data",
- "usbguard",
- "usbip",
- "usbmuxd",
- "usbredir",
- "usermode",
- "ustr",
- "uthash",
- "uuid",
- "uw-imap",
- "v4l-utils",
- "vhostmd",
- "vino",
- "virglrenderer",
- "virt-p2v",
- "virt-top",
- "virt-what",
- "virt-who",
- "vitess",
- "vmem",
- "volume_key",
- "vorbis-tools",
- "vte291",
- "vulkan-headers",
- "vulkan-loader",
- "watchdog",
- "wavpack",
- "wayland",
- "wayland-protocols",
- "web-assets",
- "webrtc-audio-processing",
- "websocketpp",
- "wget",
- "whois",
- "wireguard-tools",
- "wireless-regdb",
- "wireshark",
- "woff2",
- "wordnet",
- "words",
- "wpebackend-fdo",
- "wsmancli",
- "wvdial",
- "x3270",
- "xapian-core",
- "Xaw3d",
- "xcb-proto",
- "xcb-util",
- "xcb-util-image",
- "xcb-util-keysyms",
- "xcb-util-renderutil",
- "xcb-util-wm",
- "xdelta",
- "xdg-dbus-proxy",
- "xdg-utils",
- "xdp-tools",
- "xerces-c",
- "xfconf",
- "xfsdump",
- "xhtml1-dtds",
- "xkeyboard-config",
- "xmlstarlet",
- "xmltoman",
- "xmvn",
- "xorg-x11-apps",
- "xorg-x11-drv-libinput",
- "xorg-x11-font-utils",
- "xorg-x11-fonts",
- "xorg-x11-proto-devel",
- "xorg-x11-server",
- "xorg-x11-server-utils",
- "xorg-x11-util-macros",
- "xorg-x11-utils",
- "xorg-x11-xauth",
- "xorg-x11-xbitmaps",
- "xorg-x11-xinit",
- "xorg-x11-xkb-utils",
- "xorg-x11-xtrans-devel",
- "xrestop",
- "xterm",
- "xxhash",
- "yajl",
- "yaml-cpp",
- "yasm",
- "yelp-tools",
- "yelp-xsl",
- "ykclient",
- "yp-tools",
- "ypbind",
- "ypserv",
- "z3",
- "zenity",
- "zerofree",
- "zfs-fuse",
- "zipper",
- "zopfli",
- "zziplib"
- ]
- },
- "Fedora (Copyright Remi Collet)": {
- "license": "[CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode)",
- "specs": [
- "libmemcached-awesome",
- "librabbitmq"
- ]
- },
- "Fedora (ISC)": {
- "license": "[ISC License](https://github.com/sarugaku/resolvelib/blob/main/LICENSE)",
- "specs": [
- "python-resolvelib"
- ]
- },
- "Magnus Edenhill Open Source": {
- "license": "[Magnus Edenhill Open Source BSD License](https://github.com/jemalloc/jemalloc/blob/dev/COPYING)",
- "specs": [
- "librdkafka"
- ]
- },
- "Microsoft": {
- "license": "[Microsoft MIT License](/LICENSES-AND-NOTICES/LICENSE.md)",
- "specs": [
- "application-gateway-kubernetes-ingress",
- "asc",
- "azcopy",
- "azure-iot-sdk-c",
- "azure-nvme-utils",
- "azure-storage-cpp",
- "azurelinux-release",
- "azurelinux-repos",
- "azurelinux-rpm-macros",
- "azurelinux-sysinfo",
- "bazel",
- "blobfuse2",
- "bmon",
- "bpftrace",
- "ccache",
- "cert-manager",
- "cf-cli",
- "check-restart",
- "clamav",
- "cloud-hypervisor",
- "cmake-fedora",
- "containerd",
- "coredns",
- "dcos-cli",
- "debugedit",
- "dejavu-fonts",
- "distroless-packages",
- "docker-buildx",
- "docker-cli",
- "docker-compose",
- "doxygen",
- "dtc",
- "elixir",
- "espeak-ng",
- "espeakup",
- "flannel",
- "fluent-bit",
- "freefont",
- "gflags",
- "gh",
- "go-md2man",
- "grpc",
- "grub2-efi-binary-signed",
- "GSL",
- "gtk-update-icon-cache",
- "helm",
- "hvloader",
- "ig",
- "intel-pf-bb-config",
- "ivykis",
- "jsonbuilder",
- "jx",
- "kata-containers-cc",
- "kata-packages-uvm",
- "keda",
- "keras",
- "kernel-signed",
- "kpatch",
- "kube-vip-cloud-provider",
- "kubernetes",
- "libacvp",
- "libconfini",
- "libconfuse",
- "libgdiplus",
- "libmaxminddb",
- "libmetalink",
- "libsafec",
- "libuv",
- "libxml++",
- "lld",
- "local-path-provisioner",
- "lsb-release",
- "ltp",
- "lttng-consume",
- "mm-common",
- "moby-containerd-cc",
- "moby-engine",
- "msgpack",
- "ncompress",
- "networkd-dispatcher",
- "nlohmann-json",
- "nmap",
- "node-problem-detector",
- "ntopng",
- "opentelemetry-cpp",
- "packer",
- "pcaudiolib",
- "pcre2",
- "perl-Test-Warnings",
- "perl-Text-Template",
- "pigz",
- "prebuilt-ca-certificates",
- "prebuilt-ca-certificates-base",
- "prometheus-adapter",
- "python-cachetools",
- "python-cherrypy",
- "python-cstruct",
- "python-execnet",
- "python-google-pasta",
- "python-libclang",
- "python-libevdev",
- "python-logutils",
- "python-ml-dtypes",
- "python-namex",
- "python-nocasedict",
- "python-opt-einsum",
- "python-optree",
- "python-pecan",
- "python-pip",
- "python-pyrpm",
- "python-remoto",
- "python-repoze-lru",
- "python-routes",
- "python-rsa",
- "python-setuptools",
- "python-sphinxcontrib-websupport",
- "python-tensorboard",
- "python-tensorboard-plugin-wit",
- "python-yamlloader",
- "R",
- "rabbitmq-server",
- "rocksdb",
- "rubygem-addressable",
- "rubygem-asciidoctor",
- "rubygem-async",
- "rubygem-async-http",
- "rubygem-async-io",
- "rubygem-async-pool",
- "rubygem-bindata",
- "rubygem-concurrent-ruby",
- "rubygem-connection_pool",
- "rubygem-console",
- "rubygem-cool.io",
- "rubygem-deep_merge",
- "rubygem-digest-crc",
- "rubygem-elastic-transport",
- "rubygem-elasticsearch",
- "rubygem-elasticsearch-api",
- "rubygem-eventmachine",
- "rubygem-excon",
- "rubygem-faraday",
- "rubygem-faraday-em_http",
- "rubygem-faraday-em_synchrony",
- "rubygem-faraday-excon",
- "rubygem-faraday-httpclient",
- "rubygem-faraday-multipart",
- "rubygem-faraday-net_http",
- "rubygem-faraday-net_http_persistent",
- "rubygem-faraday-patron",
- "rubygem-faraday-rack",
- "rubygem-faraday-retry",
- "rubygem-ffi",
- "rubygem-fiber-local",
- "rubygem-fluent-config-regexp-type",
- "rubygem-fluent-logger",
- "rubygem-fluent-plugin-elasticsearch",
- "rubygem-fluent-plugin-kafka",
- "rubygem-fluent-plugin-prometheus",
- "rubygem-fluent-plugin-prometheus_pushgateway",
- "rubygem-fluent-plugin-record-modifier",
- "rubygem-fluent-plugin-rewrite-tag-filter",
- "rubygem-fluent-plugin-systemd",
- "rubygem-fluent-plugin-webhdfs",
- "rubygem-fluent-plugin-windows-exporter",
- "rubygem-fluentd",
- "rubygem-hirb",
- "rubygem-hocon",
- "rubygem-hoe",
- "rubygem-http_parser",
- "rubygem-httpclient",
- "rubygem-io-event",
- "rubygem-jmespath",
- "rubygem-ltsv",
- "rubygem-mini_portile2",
- "rubygem-minitest",
- "rubygem-mocha",
- "rubygem-msgpack",
- "rubygem-multi_json",
- "rubygem-multipart-post",
- "rubygem-net-http-persistent",
- "rubygem-nio4r",
- "rubygem-nokogiri",
- "rubygem-oj",
- "rubygem-parallel",
- "rubygem-power_assert",
- "rubygem-prometheus-client",
- "rubygem-protocol-hpack",
- "rubygem-protocol-http",
- "rubygem-protocol-http1",
- "rubygem-protocol-http2",
- "rubygem-public_suffix",
- "rubygem-puppet-resource_api",
- "rubygem-rdiscount",
- "rubygem-rdkafka",
- "rubygem-rexml",
- "rubygem-ruby-kafka",
- "rubygem-ruby-progressbar",
- "rubygem-rubyzip",
- "rubygem-semantic_puppet",
- "rubygem-serverengine",
- "rubygem-sigdump",
- "rubygem-strptime",
- "rubygem-systemd-journal",
- "rubygem-test-unit",
- "rubygem-thor",
- "rubygem-timers",
- "rubygem-tzinfo",
- "rubygem-tzinfo-data",
- "rubygem-webhdfs",
- "rubygem-webrick",
- "rubygem-yajl-ruby",
- "rubygem-zip-zip",
- "runc",
- "sdbus-cpp",
- "sgx-backwards-compatibility",
- "shim",
- "shim-unsigned",
- "shim-unsigned-aarch64",
- "shim-unsigned-x64",
- "skopeo",
- "span-lite",
- "sriov-network-device-plugin",
- "SymCrypt",
- "SymCrypt-OpenSSL",
- "tensorflow",
- "tinyxml2",
- "toml11",
- "tracelogging",
- "umoci",
- "usrsctp",
- "vala",
- "verity-read-only-root",
- "vnstat",
- "zstd"
- ]
- },
- "Netplan source": {
- "license": "[GPLv3](https://github.com/canonical/netplan/blob/main/COPYING)",
- "specs": [
- "netplan"
- ]
- },
- "Numad source": {
- "license": "[LGPLv2 License](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt)",
- "specs": [
- "numad"
- ]
- },
- "NVIDIA": {
- "license": "[ASL 2.0 License and spec specific licenses](http://www.apache.org/licenses/LICENSE-2.0)",
- "specs": [
- "libnvidia-container",
- "mlnx-tools",
- "mlx-bootctl",
- "nvidia-container-toolkit",
- "ofed-scripts",
- "perftest"
- ]
- },
- "OpenEuler": {
- "license": "[BSD-3 License](https://github.com/pytorch/pytorch/blob/master/LICENSE)",
- "specs": [
- "pytorch"
- ]
- },
- "OpenMamba": {
- "license": "[Openmamba GPLv2 License](https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt)",
- "specs": [
- "bash-completion"
- ]
- },
- "OpenSUSE": {
- "license": "Following [openSUSE guidelines](https://en.opensuse.org/openSUSE:Specfile_guidelines#Specfile_Licensing)",
- "specs": [
- "ant",
- "ant-junit",
- "antlr",
- "aopalliance",
- "apache-commons-beanutils",
- "apache-commons-cli",
- "apache-commons-codec",
- "apache-commons-collections",
- "apache-commons-collections4",
- "apache-commons-compress",
- "apache-commons-daemon",
- "apache-commons-dbcp",
- "apache-commons-digester",
- "apache-commons-httpclient",
- "apache-commons-io",
- "apache-commons-jexl",
- "apache-commons-lang",
- "apache-commons-lang3",
- "apache-commons-logging",
- "apache-commons-net",
- "apache-commons-pool",
- "apache-commons-pool2",
- "apache-commons-validator",
- "apache-commons-vfs2",
- "apache-parent",
- "args4j",
- "atinject",
- "base64coder",
- "bcel",
- "bea-stax",
- "beust-jcommander",
- "bsf",
- "byaccj",
- "cal10n",
- "cdparanoia",
- "cglib",
- "cni",
- "containerized-data-importer",
- "cpulimit",
- "cri-o",
- "ecj",
- "fillup",
- "flux",
- "gd",
- "geronimo-specs",
- "glassfish-annotation-api",
- "gnu-getopt",
- "gnu-regexp",
- "golang-packaging",
- "guava",
- "guava20",
- "hamcrest",
- "hawtjni-runtime",
- "httpcomponents-core",
- "influx-cli",
- "influxdb",
- "isorelax",
- "jakarta-taglibs-standard",
- "jansi",
- "jarjar",
- "java-cup",
- "java-cup-bootstrap",
- "javacc",
- "javacc-bootstrap",
- "javassist",
- "jboss-interceptors-1.2-api",
- "jdepend",
- "jflex",
- "jflex-bootstrap",
- "jlex",
- "jline",
- "jna",
- "jsch",
- "jsoup",
- "jsr-305",
- "jtidy",
- "junit",
- "junitperf",
- "jzlib",
- "kubevirt",
- "kured",
- "libcontainers-common",
- "libtheora",
- "libva",
- "libvdpau",
- "lynx",
- "maven-parent",
- "multus",
- "objectweb-anttask",
- "objectweb-asm",
- "objenesis",
- "oro",
- "osgi-annotation",
- "osgi-compendium",
- "osgi-core",
- "patterns-ceph-containers",
- "plexus-classworlds",
- "plexus-interpolation",
- "plexus-pom",
- "plexus-utils",
- "proj",
- "psl-make-dafsa",
- "publicsuffix",
- "qdox",
- "regexp",
- "relaxngDatatype",
- "rhino",
- "ripgrep",
- "servletapi4",
- "servletapi5",
- "shapelib",
- "slf4j",
- "trilead-ssh2",
- "virtiofsd",
- "xalan-j2",
- "xbean",
- "xcursor-themes",
- "xerces-j2",
- "xml-commons-apis",
- "xml-commons-resolver",
- "xmldb-api",
- "xmlrpc-c",
- "xmlunit",
- "xpp2",
- "xpp3",
- "xz-java"
- ]
- },
- "Photon": {
- "license": "[Photon License](LICENSE-PHOTON.md) and [Photon Notice](NOTICE.APACHE2).
Also see [LICENSE-EXCEPTIONS.PHOTON](LICENSE-EXCEPTIONS.PHOTON).",
- "specs": [
- "acl",
- "alsa-lib",
- "alsa-utils",
- "ansible",
- "apr",
- "apr-util",
- "asciidoc",
- "atftp",
- "audit",
- "autoconf",
- "autoconf-archive",
- "autofs",
- "autogen",
- "automake",
- "babel",
- "bash",
- "bc",
- "bcc",
- "bind",
- "binutils",
- "bison",
- "blktrace",
- "boost",
- "btrfs-progs",
- "bubblewrap",
- "build-essential",
- "bzip2",
- "c-ares",
- "cairo",
- "cassandra",
- "cdrkit",
- "check",
- "chkconfig",
- "chrpath",
- "cifs-utils",
- "clang",
- "cloud-init",
- "cloud-utils-growpart",
- "cmake",
- "cni-plugins",
- "core-packages",
- "coreutils",
- "cpio",
- "cppunit",
- "cracklib",
- "crash",
- "crash-gcore-command",
- "createrepo_c",
- "cri-tools",
- "cronie",
- "curl",
- "cyrus-sasl",
- "cyrus-sasl-bootstrap",
- "dbus",
- "dbus-glib",
- "dejagnu",
- "device-mapper-multipath",
- "dhcp",
- "dialog",
- "diffutils",
- "dkms",
- "dmidecode",
- "dnsmasq",
- "docbook-dtd-xml",
- "docbook-style-xsl",
- "dosfstools",
- "dracut",
- "dstat",
- "e2fsprogs",
- "ed",
- "efibootmgr",
- "efivar",
- "elfutils",
- "emacs",
- "erlang",
- "etcd",
- "ethtool",
- "expat",
- "expect",
- "fcgi",
- "file",
- "filesystem",
- "findutils",
- "flex",
- "fontconfig",
- "fping",
- "freetype",
- "fuse",
- "gawk",
- "gc",
- "gcc",
- "gdb",
- "gdbm",
- "gettext",
- "git",
- "git-lfs",
- "glib",
- "glib-networking",
- "glibc",
- "glibmm",
- "glide",
- "gmp",
- "gnome-common",
- "gnupg2",
- "gnuplot",
- "gnutls",
- "gobject-introspection",
- "golang",
- "gperf",
- "gperftools",
- "gpgme",
- "gptfdisk",
- "grep",
- "groff",
- "grub2",
- "gtest",
- "gtk-doc",
- "guile",
- "gzip",
- "haproxy",
- "harfbuzz",
- "haveged",
- "hdparm",
- "http-parser",
- "httpd",
- "i2c-tools",
- "iana-etc",
- "icu",
- "initramfs",
- "initscripts",
- "inotify-tools",
- "intltool",
- "iotop",
- "iperf3",
- "iproute",
- "ipset",
- "iptables",
- "iputils",
- "ipvsadm",
- "ipxe",
- "irqbalance",
- "itstool",
- "jansson",
- "jq",
- "json-c",
- "json-glib",
- "kbd",
- "keepalived",
- "kernel",
- "kernel-headers",
- "kernel-mshv",
- "kernel-rt",
- "kernel-uvm",
- "keyutils",
- "kmod",
- "krb5",
- "less",
- "libaio",
- "libarchive",
- "libassuan",
- "libatomic_ops",
- "libcap",
- "libcap-ng",
- "libconfig",
- "libdb",
- "libdnet",
- "libedit",
- "libestr",
- "libevent",
- "libfastjson",
- "libffi",
- "libgcrypt",
- "libgpg-error",
- "libgssglue",
- "libgudev",
- "libjpeg-turbo",
- "libksba",
- "liblogging",
- "libmbim",
- "libmnl",
- "libmodulemd",
- "libmpc",
- "libmspack",
- "libndp",
- "libnetfilter_conntrack",
- "libnetfilter_cthelper",
- "libnetfilter_cttimeout",
- "libnetfilter_queue",
- "libnfnetlink",
- "libnftnl",
- "libnl3",
- "libnsl2",
- "libpcap",
- "libpipeline",
- "libpng",
- "libpsl",
- "libqmi",
- "librelp",
- "librepo",
- "librsync",
- "libseccomp",
- "libselinux",
- "libsepol",
- "libserf",
- "libsigc++30",
- "libsolv",
- "libsoup",
- "libssh2",
- "libtalloc",
- "libtar",
- "libtasn1",
- "libtiff",
- "libtirpc",
- "libtool",
- "libunistring",
- "libunwind",
- "libusb",
- "libvirt",
- "libwebp",
- "libxml2",
- "libxslt",
- "libyaml",
- "linux-firmware",
- "lldb",
- "lldpad",
- "llvm",
- "lm-sensors",
- "lmdb",
- "log4cpp",
- "logrotate",
- "lshw",
- "lsof",
- "lsscsi",
- "ltrace",
- "lttng-tools",
- "lttng-ust",
- "lvm2",
- "lz4",
- "lzo",
- "m2crypto",
- "m4",
- "make",
- "man-db",
- "man-pages",
- "mariadb",
- "maven",
- "mc",
- "mercurial",
- "meson",
- "mlocate",
- "ModemManager",
- "mpfr",
- "msr-tools",
- "mysql",
- "nano",
- "nasm",
- "ncurses",
- "ndctl",
- "net-snmp",
- "net-tools",
- "nettle",
- "newt",
- "nfs-utils",
- "nghttp2",
- "nginx",
- "ninja-build",
- "nodejs",
- "npth",
- "nspr",
- "nss",
- "nss-altfiles",
- "ntp",
- "numactl",
- "nvme-cli",
- "oniguruma",
- "OpenIPMI",
- "openldap",
- "openscap",
- "openssh",
- "openvswitch",
- "ostree",
- "pam",
- "pango",
- "parted",
- "patch",
- "pciutils",
- "perl-Canary-Stability",
- "perl-CGI",
- "perl-common-sense",
- "perl-Crypt-SSLeay",
- "perl-DBD-SQLite",
- "perl-DBI",
- "perl-DBIx-Simple",
- "perl-Exporter-Tiny",
- "perl-File-HomeDir",
- "perl-File-Which",
- "perl-IO-Socket-SSL",
- "perl-JSON-Any",
- "perl-JSON-XS",
- "perl-libintl-perl",
- "perl-List-MoreUtils",
- "perl-Module-Build",
- "perl-Module-Install",
- "perl-Module-ScanDeps",
- "perl-Net-SSLeay",
- "perl-NetAddr-IP",
- "perl-Object-Accessor",
- "perl-Path-Class",
- "perl-Try-Tiny",
- "perl-Types-Serialiser",
- "perl-WWW-Curl",
- "perl-XML-Parser",
- "perl-YAML",
- "perl-YAML-Tiny",
- "pgbouncer",
- "pinentry",
- "polkit",
- "popt",
- "postgresql",
- "procps-ng",
- "protobuf",
- "protobuf-c",
- "psmisc",
- "pth",
- "pyasn1-modules",
- "pyOpenSSL",
- "pyparsing",
- "pytest",
- "python-appdirs",
- "python-asn1crypto",
- "python-atomicwrites",
- "python-attrs",
- "python-bcrypt",
- "python-certifi",
- "python-cffi",
- "python-chardet",
- "python-configobj",
- "python-constantly",
- "python-coverage",
- "python-cryptography",
- "python-daemon",
- "python-dateutil",
- "python-defusedxml",
- "python-distro",
- "python-docopt",
- "python-docutils",
- "python-ecdsa",
- "python-gevent",
- "python-hyperlink",
- "python-hypothesis",
- "python-idna",
- "python-imagesize",
- "python-incremental",
- "python-iniparse",
- "python-ipaddr",
- "python-jinja2",
- "python-jmespath",
- "python-jsonpatch",
- "python-jsonpointer",
- "python-jsonschema",
- "python-lockfile",
- "python-lxml",
- "python-mako",
- "python-markupsafe",
- "python-mistune",
- "python-msgpack",
- "python-netaddr",
- "python-netifaces",
- "python-ntplib",
- "python-oauthlib",
- "python-packaging",
- "python-pam",
- "python-pbr",
- "python-ply",
- "python-prettytable",
- "python-psutil",
- "python-psycopg2",
- "python-py",
- "python-pyasn1",
- "python-pycodestyle",
- "python-pycparser",
- "python-pycurl",
- "python-pygments",
- "python-pynacl",
- "python-requests",
- "python-setuptools_scm",
- "python-simplejson",
- "python-six",
- "python-snowballstemmer",
- "python-sphinx-theme-alabaster",
- "python-twisted",
- "python-urllib3",
- "python-vcversioner",
- "python-virtualenv",
- "python-wcwidth",
- "python-webob",
- "python-websocket-client",
- "python-werkzeug",
- "python-zope-interface",
- "python3",
- "pytz",
- "PyYAML",
- "rapidjson",
- "readline",
- "rng-tools",
- "rpcbind",
- "rpcsvc-proto",
- "rpm",
- "rpm-ostree",
- "rrdtool",
- "rsync",
- "rsyslog",
- "ruby",
- "rust",
- "scons",
- "sed",
- "sg3_utils",
- "shadow-utils",
- "slang",
- "snappy",
- "socat",
- "sqlite",
- "sshpass",
- "strace",
- "strongswan",
- "subversion",
- "sudo",
- "swig",
- "syslinux",
- "syslog-ng",
- "sysstat",
- "systemd-bootstrap",
- "systemtap",
- "tar",
- "tboot",
- "tcl",
- "tcpdump",
- "tcsh",
- "tdnf",
- "telegraf",
- "texinfo",
- "tmux",
- "tpm2-abrmd",
- "tpm2-pkcs11",
- "tpm2-pytss",
- "tpm2-tools",
- "tpm2-tss",
- "traceroute",
- "tree",
- "tzdata",
- "unbound",
- "unixODBC",
- "unzip",
- "usbutils",
- "userspace-rcu",
- "utf8proc",
- "util-linux",
- "valgrind",
- "vim",
- "vsftpd",
- "WALinuxAgent",
- "which",
- "wpa_supplicant",
- "xfsprogs",
- "xinetd",
- "xmlsec1",
- "xmlto",
- "xz",
- "zchunk",
- "zeromq",
- "zip",
- "zlib",
- "zsh"
- ]
- },
- "RPM software management source": {
- "license": "[GPLv2+ License](https://github.com/rpm-software-management/dnf5/blob/main/COPYING.md)",
- "specs": [
- "dnf5"
- ]
- },
- "Source project": {
- "license": "Same as the source project.",
- "specs": [
- "python-nocaselist"
- ]
- },
- "Sysbench source": {
- "license": "[GPLv2+ License](https://github.com/akopytov/sysbench/blob/master/COPYING)",
- "specs": [
- "sysbench"
- ]
- }
- }
-}
+{
+ "header": "The Azure Linux SPEC files originated from a variety of sources with varying licenses. The changelog for each SPEC file declares provenance for Azure Linux. Some of the SPEC files that originated from other distributions might already have been derived from alternate sources. Their licenses can be found in LICENSE-EXCEPTION.xxx files in this folder.",
+ "table_headers": [
+ "Origin",
+ "License",
+ "Specs"
+ ],
+ "licenses": {
+ "CentOS": {
+ "license": "[MIT](https://www.centos.org/legal/#licensing-policy)",
+ "specs": [
+ "crash-ptdump-command",
+ "delve",
+ "fstrm",
+ "nodejs-nodemon",
+ "rhnlib",
+ "rt-setup",
+ "rt-tests",
+ "rtctl",
+ "tuned"
+ ]
+ },
+ "Ceph source": {
+ "license": "[LGPL2.1](https://github.com/ceph/ceph/blob/master/COPYING-LGPL2.1)",
+ "specs": [
+ "ceph"
+ ]
+ },
+ "Debian": {
+ "license": "[MIT](https://opensource.org/licenses/MIT)",
+ "specs": [
+ "prometheus-process-exporter"
+ ]
+ },
+ "Fedora": {
+ "license": "[Fedora MIT License Declaration](https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#License_of_Fedora_SPEC_Files)",
+ "specs": [
+ "a52dec",
+ "abseil-cpp",
+ "accountsservice",
+ "acpica-tools",
+ "acpid",
+ "adcli",
+ "adobe-mappings-cmap",
+ "adobe-mappings-pdf",
+ "advancecomp",
+ "adwaita-icon-theme",
+ "afflib",
+ "aide",
+ "alsa-firmware",
+ "alsa-plugins",
+ "amtk",
+ "amtterm",
+ "annobin",
+ "ansible-freeipa",
+ "archivemount",
+ "argparse-manpage",
+ "arptables",
+ "arpwatch",
+ "asio",
+ "aspell",
+ "aspell-en",
+ "at",
+ "at-spi2-atk",
+ "at-spi2-core",
+ "atf",
+ "atk",
+ "atop",
+ "attr",
+ "audiofile",
+ "augeas",
+ "authbind",
+ "authd",
+ "authselect",
+ "autoconf213",
+ "avahi",
+ "babeltrace",
+ "babeltrace2",
+ "babl",
+ "baekmuk-ttf-fonts",
+ "bats",
+ "bcache-tools",
+ "biosdevname",
+ "blosc",
+ "bluez",
+ "bmake",
+ "bogofilter",
+ "bolt",
+ "boom-boot",
+ "booth",
+ "botan2",
+ "breezy",
+ "brotli",
+ "buildah",
+ "busybox",
+ "bwidget",
+ "byacc",
+ "ca-certificates",
+ "cachefilesd",
+ "cairomm",
+ "calamares",
+ "capstone",
+ "catatonit",
+ "catch",
+ "catch1",
+ "cdrdao",
+ "celt051",
+ "cereal",
+ "certmonger",
+ "cfitsio",
+ "cgdcbxd",
+ "chan",
+ "CharLS",
+ "checkpolicy",
+ "checksec",
+ "chrony",
+ "cim-schema",
+ "cjkuni-uming-fonts",
+ "cjose",
+ "ck",
+ "cldr-emoji-annotation",
+ "clucene",
+ "clutter",
+ "clutter-gst3",
+ "clutter-gtk",
+ "cmocka",
+ "cogl",
+ "collectd",
+ "colm",
+ "color-filesystem",
+ "colord",
+ "colorize",
+ "compat-lua",
+ "compiler-rt",
+ "conda",
+ "conmon",
+ "conntrack-tools",
+ "console-setup",
+ "container-exception-logger",
+ "containernetworking-plugins",
+ "convmv",
+ "corosync",
+ "corosync-qdevice",
+ "cpp-hocon",
+ "cppcheck",
+ "cpprest",
+ "cpptest",
+ "cpuid",
+ "criu",
+ "crypto-policies",
+ "cryptsetup",
+ "cscope",
+ "ctags",
+ "CUnit",
+ "cups",
+ "custodia",
+ "Cython",
+ "dbus-c++",
+ "dbus-python",
+ "dbxtool",
+ "dconf",
+ "dcraw",
+ "debootstrap",
+ "deltarpm",
+ "desktop-file-utils",
+ "device-mapper-persistent-data",
+ "dietlibc",
+ "diffstat",
+ "ding-libs",
+ "discount",
+ "distribution-gpg-keys",
+ "dleyna-connector-dbus",
+ "dleyna-core",
+ "dmraid",
+ "dnf",
+ "dnf-plugins-core",
+ "docbook-dtds",
+ "docbook-simple",
+ "docbook-slides",
+ "docbook-style-dsssl",
+ "docbook-utils",
+ "docbook2X",
+ "docbook5-schemas",
+ "docbook5-style-xsl",
+ "dogtail",
+ "dos2unix",
+ "dotconf",
+ "dovecot",
+ "dpdk",
+ "dpkg",
+ "driverctl",
+ "dropwatch",
+ "drpm",
+ "duktape",
+ "dumpet",
+ "dvd+rw-tools",
+ "dwarves",
+ "dwz",
+ "dyninst",
+ "ebtables",
+ "edac-utils",
+ "edk2",
+ "efax",
+ "efi-rpm-macros",
+ "egl-wayland",
+ "eglexternalplatform",
+ "elinks",
+ "enca",
+ "enchant",
+ "enchant2",
+ "enscript",
+ "environment-modules",
+ "evemu",
+ "execstack",
+ "exempi",
+ "exiv2",
+ "extra-cmake-modules",
+ "fabtests",
+ "facter",
+ "fakechroot",
+ "fakeroot",
+ "fapolicyd",
+ "fdk-aac-free",
+ "fdupes",
+ "fence-virt",
+ "fetchmail",
+ "fftw",
+ "filebench",
+ "fio",
+ "fipscheck",
+ "firewalld",
+ "flac",
+ "flatbuffers",
+ "flite",
+ "fltk",
+ "fmt",
+ "fontawesome-fonts",
+ "fontawesome4-fonts",
+ "fontpackages",
+ "fonts-rpm-macros",
+ "foomatic-db",
+ "freeglut",
+ "freeipmi",
+ "freeradius",
+ "freetds",
+ "freexl",
+ "fribidi",
+ "fros",
+ "frr",
+ "fsverity-utils",
+ "fuse-overlayfs",
+ "fuse-sshfs",
+ "fuse-zip",
+ "fuse3",
+ "future",
+ "fxload",
+ "gavl",
+ "gbenchmark",
+ "gconf-editor",
+ "GConf2",
+ "gcovr",
+ "gcr",
+ "gdal",
+ "gdisk",
+ "gdk-pixbuf2",
+ "generic-logos",
+ "genwqe-tools",
+ "geoclue2",
+ "GeoIP",
+ "GeoIP-GeoLite-data",
+ "geolite2",
+ "geos",
+ "gfs2-utils",
+ "ghc-srpm-macros",
+ "giflib",
+ "gl-manpages",
+ "glew",
+ "glm",
+ "glog",
+ "glslang",
+ "glusterfs",
+ "gnome-desktop-testing",
+ "gnome-doc-utils",
+ "gnome-icon-theme",
+ "gnome-keyring",
+ "gnu-efi",
+ "go-rpm-macros",
+ "gom",
+ "google-api-python-client",
+ "google-crosextra-caladea-fonts",
+ "google-crosextra-carlito-fonts",
+ "google-guice",
+ "google-noto-cjk-fonts",
+ "google-noto-emoji-fonts",
+ "google-roboto-slab-fonts",
+ "gphoto2",
+ "gpm",
+ "gpsbabel",
+ "graphene",
+ "graphite2",
+ "graphviz",
+ "grubby",
+ "gsettings-desktop-schemas",
+ "gsl",
+ "gsm",
+ "gspell",
+ "gssdp",
+ "gssntlmssp",
+ "gstreamer1",
+ "gstreamer1-plugins-base",
+ "gtk-vnc",
+ "gtk2",
+ "gtk3",
+ "gtkspell",
+ "gupnp",
+ "gupnp-av",
+ "gupnp-dlna",
+ "gupnp-igd",
+ "hardening-check",
+ "hdf",
+ "hdf5",
+ "heimdal",
+ "help2man",
+ "hexedit",
+ "hicolor-icon-theme",
+ "hiera",
+ "highlight",
+ "hivex",
+ "hostname",
+ "hping3",
+ "hsakmt",
+ "htop",
+ "hunspell",
+ "hunspell-af",
+ "hunspell-ar",
+ "hunspell-as",
+ "hunspell-ast",
+ "hunspell-az",
+ "hunspell-be",
+ "hunspell-bg",
+ "hunspell-bn",
+ "hunspell-br",
+ "hunspell-ca",
+ "hunspell-cop",
+ "hunspell-csb",
+ "hunspell-cv",
+ "hunspell-cy",
+ "hunspell-da",
+ "hunspell-de",
+ "hunspell-dsb",
+ "hunspell-el",
+ "hunspell-en",
+ "hunspell-eo",
+ "hunspell-es",
+ "hunspell-et",
+ "hunspell-eu",
+ "hunspell-fa",
+ "hunspell-fj",
+ "hunspell-fo",
+ "hunspell-fr",
+ "hunspell-fur",
+ "hunspell-fy",
+ "hunspell-ga",
+ "hunspell-gd",
+ "hunspell-gl",
+ "hunspell-grc",
+ "hunspell-gu",
+ "hunspell-gv",
+ "hunspell-haw",
+ "hunspell-hi",
+ "hunspell-hil",
+ "hunspell-hr",
+ "hunspell-hsb",
+ "hunspell-ht",
+ "hunspell-hu",
+ "hunspell-hy",
+ "hunspell-ia",
+ "hunspell-id",
+ "hunspell-is",
+ "hunspell-it",
+ "hunspell-kk",
+ "hunspell-km",
+ "hunspell-kn",
+ "hunspell-ko",
+ "hunspell-ku",
+ "hunspell-ky",
+ "hunspell-la",
+ "hunspell-lb",
+ "hunspell-ln",
+ "hunspell-mai",
+ "hunspell-mg",
+ "hunspell-mi",
+ "hunspell-mk",
+ "hunspell-ml",
+ "hunspell-mn",
+ "hunspell-mos",
+ "hunspell-mr",
+ "hunspell-ms",
+ "hunspell-mt",
+ "hunspell-nds",
+ "hunspell-ne",
+ "hunspell-nl",
+ "hunspell-no",
+ "hunspell-nr",
+ "hunspell-nso",
+ "hunspell-ny",
+ "hunspell-om",
+ "hunspell-or",
+ "hunspell-pa",
+ "hunspell-pl",
+ "hunspell-pt",
+ "hunspell-quh",
+ "hunspell-ro",
+ "hunspell-ru",
+ "hunspell-rw",
+ "hunspell-se",
+ "hunspell-shs",
+ "hunspell-si",
+ "hunspell-sk",
+ "hunspell-sl",
+ "hunspell-smj",
+ "hunspell-so",
+ "hunspell-sq",
+ "hunspell-sr",
+ "hunspell-sv",
+ "hunspell-sw",
+ "hunspell-ta",
+ "hunspell-te",
+ "hunspell-tet",
+ "hunspell-th",
+ "hunspell-tk",
+ "hunspell-tl",
+ "hunspell-tn",
+ "hunspell-tpi",
+ "hunspell-ts",
+ "hunspell-uk",
+ "hunspell-uz",
+ "hunspell-ve",
+ "hunspell-vi",
+ "hunspell-wa",
+ "hunspell-xh",
+ "hunspell-yi",
+ "hwdata",
+ "hwloc",
+ "hyperscan",
+ "hyperv-daemons",
+ "hyphen",
+ "hyphen-as",
+ "hyphen-bg",
+ "hyphen-bn",
+ "hyphen-ca",
+ "hyphen-da",
+ "hyphen-de",
+ "hyphen-el",
+ "hyphen-es",
+ "hyphen-fa",
+ "hyphen-fo",
+ "hyphen-fr",
+ "hyphen-ga",
+ "hyphen-gl",
+ "hyphen-grc",
+ "hyphen-gu",
+ "hyphen-hi",
+ "hyphen-hsb",
+ "hyphen-hu",
+ "hyphen-ia",
+ "hyphen-id",
+ "hyphen-is",
+ "hyphen-it",
+ "hyphen-kn",
+ "hyphen-ku",
+ "hyphen-lt",
+ "hyphen-mi",
+ "hyphen-ml",
+ "hyphen-mn",
+ "hyphen-mr",
+ "hyphen-nl",
+ "hyphen-or",
+ "hyphen-pa",
+ "hyphen-pl",
+ "hyphen-pt",
+ "hyphen-ro",
+ "hyphen-ru",
+ "hyphen-sa",
+ "hyphen-sk",
+ "hyphen-sl",
+ "hyphen-sv",
+ "hyphen-ta",
+ "hyphen-te",
+ "hyphen-tk",
+ "hyphen-uk",
+ "ibus",
+ "ibus-chewing",
+ "ibus-hangul",
+ "ibus-kkc",
+ "ibus-libzhuyin",
+ "ibus-m17n",
+ "ibus-rawcode",
+ "ibus-sayura",
+ "ibus-table",
+ "ibus-table-chinese",
+ "icc-profiles-openicc",
+ "icon-naming-utils",
+ "icoutils",
+ "iftop",
+ "iio-sensor-proxy",
+ "ilmbase",
+ "im-chooser",
+ "imaptest",
+ "imsettings",
+ "indent",
+ "infinipath-psm",
+ "inih",
+ "iniparser",
+ "intel-cmt-cat",
+ "intel-ipsec-mb",
+ "ioping",
+ "IP2Location",
+ "ipa-pgothic-fonts",
+ "ipcalc",
+ "ipmitool",
+ "iprutils",
+ "iptraf-ng",
+ "iptstate",
+ "irssi",
+ "iscsi-initiator-utils",
+ "isns-utils",
+ "iso-codes",
+ "isomd5sum",
+ "iw",
+ "iwd",
+ "jabberpy",
+ "jakarta-servlet",
+ "jasper",
+ "javapackages-bootstrap",
+ "javapackages-tools",
+ "jbigkit",
+ "jdom2",
+ "jemalloc",
+ "jfsutils",
+ "jimtcl",
+ "jose",
+ "js-jquery",
+ "jsoncpp",
+ "Judy",
+ "jurand",
+ "kata-containers",
+ "kde-filesystem",
+ "kde-settings",
+ "kexec-tools",
+ "keybinder3",
+ "keycloak-httpd-client-install",
+ "kf",
+ "kf-kconfig",
+ "kf-kcoreaddons",
+ "kf-ki18n",
+ "kf-kwidgetsaddons",
+ "kpmcore",
+ "kronosnet",
+ "ksh",
+ "kyotocabinet",
+ "kyua",
+ "ladspa",
+ "lame",
+ "langtable",
+ "lapack",
+ "lasso",
+ "latencytop",
+ "lato-fonts",
+ "lcms2",
+ "lcov",
+ "ldns",
+ "leatherman",
+ "ledmon",
+ "lensfun",
+ "leveldb",
+ "lftp",
+ "libabw",
+ "libaec",
+ "libao",
+ "libappstream-glib",
+ "libarrow",
+ "libart_lgpl",
+ "libasyncns",
+ "libatasmart",
+ "libavc1394",
+ "libblockdev",
+ "libbpf",
+ "libbsd",
+ "libburn",
+ "libbytesize",
+ "libcacard",
+ "libcanberra",
+ "libcdio",
+ "libcdio-paranoia",
+ "libcdr",
+ "libcgroup",
+ "libchewing",
+ "libcli",
+ "libcmis",
+ "libcmpiutil",
+ "libcomps",
+ "libcroco",
+ "libdaemon",
+ "libdap",
+ "libdatrie",
+ "libdazzle",
+ "libdbi",
+ "libdbi-drivers",
+ "libdbusmenu",
+ "libdc1394",
+ "libdeflate",
+ "libdmx",
+ "libdnf",
+ "libdrm",
+ "libdvdnav",
+ "libdvdread",
+ "libdwarf",
+ "libeasyfc",
+ "libecap",
+ "libecb",
+ "libell",
+ "libEMF",
+ "libeot",
+ "libepoxy",
+ "libepubgen",
+ "libesmtp",
+ "libetonyek",
+ "libev",
+ "libevdev",
+ "libexif",
+ "libexttextcat",
+ "libfabric",
+ "libfontenc",
+ "libfreehand",
+ "libftdi",
+ "libgadu",
+ "libgdither",
+ "libgee",
+ "libgee06",
+ "libgeotiff",
+ "libgexiv2",
+ "libgit2",
+ "libgit2-glib",
+ "libglade2",
+ "libglvnd",
+ "libgovirt",
+ "libgphoto2",
+ "libgsf",
+ "libgta",
+ "libguestfs",
+ "libgusb",
+ "libgxim",
+ "libgxps",
+ "libhangul",
+ "libhugetlbfs",
+ "libibcommon",
+ "libical",
+ "libICE",
+ "libicns",
+ "libid3tag",
+ "libIDL",
+ "libidn2",
+ "libiec61883",
+ "libieee1284",
+ "libimobiledevice",
+ "libindicator",
+ "libinput",
+ "libiodbc",
+ "libipt",
+ "libiptcdata",
+ "libiscsi",
+ "libisoburn",
+ "libisofs",
+ "libjcat",
+ "libkcapi",
+ "libkeepalive",
+ "libkkc",
+ "libkkc-data",
+ "libkml",
+ "liblangtag",
+ "libldb",
+ "libldm",
+ "liblerc",
+ "liblockfile",
+ "liblognorm",
+ "liblouis",
+ "liblqr-1",
+ "liblzf",
+ "libmad",
+ "libmediaart",
+ "libmicrohttpd",
+ "libmikmod",
+ "libmodman",
+ "libmodplug",
+ "libmodulemd1",
+ "libmpcdec",
+ "libmspub",
+ "libmtp",
+ "libmusicbrainz5",
+ "libmwaw",
+ "libnbd",
+ "libnet",
+ "libnetfilter_log",
+ "libnfs",
+ "libnotify",
+ "libntlm",
+ "libnumbertext",
+ "libnvme",
+ "liboauth",
+ "libodfgen",
+ "libofa",
+ "libogg",
+ "liboggz",
+ "liboil",
+ "libomxil-bellagio",
+ "libopenraw",
+ "liboping",
+ "libosinfo",
+ "libotf",
+ "libotr",
+ "libpagemaker",
+ "libpaper",
+ "libpciaccess",
+ "libpeas",
+ "libpfm",
+ "libpinyin",
+ "libplist",
+ "libpmemobj-cpp",
+ "libpng12",
+ "libpng15",
+ "libproxy",
+ "libpsm2",
+ "libpwquality",
+ "libqb",
+ "libqxp",
+ "libraqm",
+ "LibRaw",
+ "libraw1394",
+ "libreport",
+ "libreswan",
+ "librevenge",
+ "librsvg2",
+ "librx",
+ "libsamplerate",
+ "libsass",
+ "libsecret",
+ "libsemanage",
+ "libsigc++20",
+ "libsigsegv",
+ "libslirp",
+ "libSM",
+ "libsmbios",
+ "libsmi",
+ "libsndfile",
+ "libsodium",
+ "libspiro",
+ "libsrtp",
+ "libssh",
+ "libstaroffice",
+ "libstemmer",
+ "libstoragemgmt",
+ "libtdb",
+ "libteam",
+ "libtevent",
+ "libthai",
+ "libtnc",
+ "libtomcrypt",
+ "libtommath",
+ "libtpms",
+ "libtracecmd",
+ "libtraceevent",
+ "libtracefs",
+ "libtranslit",
+ "libucil",
+ "libunicap",
+ "libuninameslist",
+ "liburing",
+ "libusbmuxd",
+ "libuser",
+ "libutempter",
+ "libvarlink",
+ "libverto",
+ "libvirt-dbus",
+ "libvirt-glib",
+ "libvirt-java",
+ "libvirt-python",
+ "libvisio",
+ "libvisual",
+ "libvoikko",
+ "libvorbis",
+ "libvpx",
+ "libwacom",
+ "libwnck3",
+ "libwpd",
+ "libwpe",
+ "libwpg",
+ "libwps",
+ "libwvstreams",
+ "libX11",
+ "libXau",
+ "libXaw",
+ "libxcb",
+ "libXcomposite",
+ "libxcrypt",
+ "libXcursor",
+ "libXdamage",
+ "libXdmcp",
+ "libXext",
+ "libxfce4util",
+ "libXfixes",
+ "libXfont2",
+ "libXft",
+ "libXi",
+ "libXinerama",
+ "libxkbcommon",
+ "libxkbfile",
+ "libxklavier",
+ "libxmlb",
+ "libXmu",
+ "libXpm",
+ "libXrandr",
+ "libXrender",
+ "libXres",
+ "libXScrnSaver",
+ "libxshmfence",
+ "libXt",
+ "libXtst",
+ "libXv",
+ "libXxf86vm",
+ "libyami",
+ "libyang",
+ "libyubikey",
+ "libzip",
+ "libzmf",
+ "lilv",
+ "linuxconsoletools",
+ "linuxptp",
+ "lksctp-tools",
+ "lldpd",
+ "lockdev",
+ "logwatch",
+ "lpsolve",
+ "lrzsz",
+ "lua",
+ "lua-expat",
+ "lua-filesystem",
+ "lua-json",
+ "lua-lpeg",
+ "lua-lunit",
+ "lua-rpm-macros",
+ "lua-term",
+ "luajit",
+ "lujavrite",
+ "luksmeta",
+ "lutok",
+ "lv2",
+ "lzip",
+ "lzop",
+ "m17n-db",
+ "m17n-lib",
+ "mac-robber",
+ "mailcap",
+ "mailx",
+ "malaga",
+ "malaga-suomi-voikko",
+ "mallard-rng",
+ "man-pages-cs",
+ "man-pages-es",
+ "man-pages-it",
+ "man-pages-ja",
+ "man-pages-ko",
+ "man-pages-pl",
+ "man-pages-ru",
+ "man-pages-zh-CN",
+ "mandoc",
+ "mariadb-connector-c",
+ "mariadb-connector-odbc",
+ "marisa",
+ "maven-compiler-plugin",
+ "maven-jar-plugin",
+ "maven-resolver",
+ "maven-resources-plugin",
+ "maven-surefire",
+ "maven-wagon",
+ "mcelog",
+ "mcpp",
+ "mcstrans",
+ "mdadm",
+ "mdds",
+ "mdevctl",
+ "meanwhile",
+ "mecab",
+ "mecab-ipadic",
+ "media-player-info",
+ "memcached",
+ "memkind",
+ "mesa",
+ "mesa-libGLU",
+ "metis",
+ "microcode_ctl",
+ "microdnf",
+ "minicom",
+ "minizip",
+ "mksh",
+ "mobile-broadband-provider-info",
+ "mock",
+ "mock-core-configs",
+ "mod_auth_gssapi",
+ "mod_auth_mellon",
+ "mod_auth_openidc",
+ "mod_authnz_pam",
+ "mod_fcgid",
+ "mod_http2",
+ "mod_intercept_form_submit",
+ "mod_lookup_identity",
+ "mod_md",
+ "mod_security",
+ "mod_security_crs",
+ "mod_wsgi",
+ "mokutil",
+ "mozjs",
+ "mpage",
+ "mrtg",
+ "mstflint",
+ "mt-st",
+ "mtdev",
+ "mtools",
+ "mtr",
+ "mtx",
+ "munge",
+ "mutt",
+ "mythes",
+ "mythes-bg",
+ "mythes-ca",
+ "mythes-cs",
+ "mythes-da",
+ "mythes-de",
+ "mythes-el",
+ "mythes-en",
+ "mythes-eo",
+ "mythes-es",
+ "mythes-fr",
+ "mythes-ga",
+ "mythes-hu",
+ "mythes-mi",
+ "mythes-ne",
+ "mythes-nl",
+ "mythes-pl",
+ "mythes-pt",
+ "mythes-ro",
+ "mythes-ru",
+ "mythes-sk",
+ "mythes-sl",
+ "mythes-sv",
+ "mythes-uk",
+ "nbd",
+ "nbdkit",
+ "neon",
+ "netavark",
+ "netcdf",
+ "netcf",
+ "netlabel_tools",
+ "netpbm",
+ "netsniff-ng",
+ "nfs4-acl-tools",
+ "nftables",
+ "nilfs-utils",
+ "nkf",
+ "nload",
+ "nlopt",
+ "nodejs-packaging",
+ "nss-mdns",
+ "nss-pam-ldapd",
+ "nss_nis",
+ "nss_wrapper",
+ "ntfs-3g",
+ "ntfs-3g-system-compression",
+ "numad",
+ "numatop",
+ "numpy",
+ "nvmetcli",
+ "nvml",
+ "oath-toolkit",
+ "ocaml",
+ "ocaml-alcotest",
+ "ocaml-astring",
+ "ocaml-augeas",
+ "ocaml-base",
+ "ocaml-bigarray-compat",
+ "ocaml-bisect-ppx",
+ "ocaml-calendar",
+ "ocaml-camlp-streams",
+ "ocaml-camlp5",
+ "ocaml-camomile",
+ "ocaml-cinaps",
+ "ocaml-cmdliner",
+ "ocaml-compiler-libs-janestreet",
+ "ocaml-cppo",
+ "ocaml-csexp",
+ "ocaml-csv",
+ "ocaml-ctypes",
+ "ocaml-curses",
+ "ocaml-dune",
+ "ocaml-extlib",
+ "ocaml-fileutils",
+ "ocaml-findlib",
+ "ocaml-fmt",
+ "ocaml-fpath",
+ "ocaml-gettext",
+ "ocaml-integers",
+ "ocaml-libvirt",
+ "ocaml-luv",
+ "ocaml-lwt",
+ "ocaml-markup",
+ "ocaml-migrate-parsetree",
+ "ocaml-mmap",
+ "ocaml-num",
+ "ocaml-ocamlbuild",
+ "ocaml-ocplib-endian",
+ "ocaml-ounit",
+ "ocaml-parsexp",
+ "ocaml-pp",
+ "ocaml-ppx-derivers",
+ "ocaml-ppx-here",
+ "ocaml-ppx-let",
+ "ocaml-ppxlib",
+ "ocaml-re",
+ "ocaml-react",
+ "ocaml-result",
+ "ocaml-seq",
+ "ocaml-sexplib",
+ "ocaml-sexplib0",
+ "ocaml-srpm-macros",
+ "ocaml-stdio",
+ "ocaml-stdlib-random",
+ "ocaml-topkg",
+ "ocaml-tyxml",
+ "ocaml-uuidm",
+ "ocaml-uutf",
+ "ocaml-xml-light",
+ "ocaml-zarith",
+ "ocl-icd",
+ "oddjob",
+ "ogdi",
+ "omping",
+ "opa",
+ "opal",
+ "open-vm-tools",
+ "openblas",
+ "opencc",
+ "opencl-filesystem",
+ "opencl-headers",
+ "opencryptoki",
+ "opencsd",
+ "opendnssec",
+ "OpenEXR",
+ "openjade",
+ "openjpeg2",
+ "openmpi",
+ "openobex",
+ "openoffice-lv",
+ "openrdate",
+ "opensc",
+ "openslp",
+ "opensm",
+ "opensp",
+ "openssl",
+ "openssl-ibmpkcs11",
+ "openssl-pkcs11",
+ "openwsman",
+ "optipng",
+ "opus",
+ "opusfile",
+ "orangefs",
+ "ORBit2",
+ "orc",
+ "os-prober",
+ "osinfo-db",
+ "osinfo-db-tools",
+ "overpass-fonts",
+ "p11-kit",
+ "p7zip",
+ "pacemaker",
+ "pacrunner",
+ "pakchois",
+ "pam_krb5",
+ "pam_wrapper",
+ "papi",
+ "paps",
+ "parallel",
+ "patchelf",
+ "patchutils",
+ "pbzip2",
+ "pcp",
+ "pcsc-lite",
+ "pcsc-lite-ccid",
+ "PEGTL",
+ "perl",
+ "perl-Algorithm-C3",
+ "perl-Algorithm-Diff",
+ "perl-Alien-Build",
+ "perl-Alien-pkgconf",
+ "perl-AnyEvent",
+ "perl-AnyEvent-AIO",
+ "perl-AnyEvent-BDB",
+ "perl-App-cpanminus",
+ "perl-App-FatPacker",
+ "perl-AppConfig",
+ "perl-Archive-Extract",
+ "perl-Archive-Zip",
+ "perl-Authen-SASL",
+ "perl-B-COW",
+ "perl-B-Debug",
+ "perl-B-Hooks-EndOfScope",
+ "perl-B-Hooks-OP-Check",
+ "perl-B-Keywords",
+ "perl-B-Lint",
+ "perl-bareword-filehandles",
+ "perl-BDB",
+ "perl-Bit-Vector",
+ "perl-boolean",
+ "perl-Browser-Open",
+ "perl-BSD-Resource",
+ "perl-Business-ISBN",
+ "perl-Business-ISBN-Data",
+ "perl-Bytes-Random-Secure",
+ "perl-Capture-Tiny",
+ "perl-Carp-Clan",
+ "perl-CBOR-XS",
+ "perl-Class-Accessor",
+ "perl-Class-C3",
+ "perl-Class-C3-XS",
+ "perl-Class-Data-Inheritable",
+ "perl-Class-Factory-Util",
+ "perl-Class-Inspector",
+ "perl-Class-ISA",
+ "perl-Class-Load",
+ "perl-Class-Load-XS",
+ "perl-Class-Method-Modifiers",
+ "perl-Class-Singleton",
+ "perl-Class-Tiny",
+ "perl-Class-XSAccessor",
+ "perl-Clone",
+ "perl-Color-ANSI-Util",
+ "perl-Color-RGB-Util",
+ "perl-ColorThemeBase-Static",
+ "perl-ColorThemeRole-ANSI",
+ "perl-ColorThemes-Standard",
+ "perl-ColorThemeUtil-ANSI",
+ "perl-Compress-Bzip2",
+ "perl-Compress-LZF",
+ "perl-Compress-Raw-Lzma",
+ "perl-Config-AutoConf",
+ "perl-Config-INI",
+ "perl-Config-INI-Reader-Multiline",
+ "perl-Config-IniFiles",
+ "perl-Config-Simple",
+ "perl-Config-Tiny",
+ "perl-Const-Fast",
+ "perl-Convert-ASN1",
+ "perl-Convert-Bencode",
+ "perl-Coro",
+ "perl-Coro-Multicore",
+ "perl-CPAN-Changes",
+ "perl-CPAN-DistnameInfo",
+ "perl-CPAN-Meta-Check",
+ "perl-Cpanel-JSON-XS",
+ "perl-Crypt-CBC",
+ "perl-Crypt-DES",
+ "perl-Crypt-IDEA",
+ "perl-Crypt-OpenSSL-Bignum",
+ "perl-Crypt-OpenSSL-Guess",
+ "perl-Crypt-OpenSSL-Random",
+ "perl-Crypt-OpenSSL-RSA",
+ "perl-Crypt-PasswdMD5",
+ "perl-Crypt-Random-Seed",
+ "perl-CSS-Tiny",
+ "perl-Data-Dump",
+ "perl-Data-Munge",
+ "perl-Data-OptList",
+ "perl-Data-Peek",
+ "perl-Data-Section",
+ "perl-Data-UUID",
+ "perl-Date-Calc",
+ "perl-Date-ISO8601",
+ "perl-Date-Manip",
+ "perl-DateTime",
+ "perl-DateTime-Format-Builder",
+ "perl-DateTime-Format-DateParse",
+ "perl-DateTime-Format-HTTP",
+ "perl-DateTime-Format-IBeat",
+ "perl-DateTime-Format-ISO8601",
+ "perl-DateTime-Format-Mail",
+ "perl-DateTime-Format-Strptime",
+ "perl-DateTime-Locale",
+ "perl-DateTime-TimeZone",
+ "perl-DateTime-TimeZone-SystemV",
+ "perl-DateTime-TimeZone-Tzfile",
+ "perl-DBD-MySQL",
+ "perl-Devel-CallChecker",
+ "perl-Devel-Caller",
+ "perl-Devel-CheckBin",
+ "perl-Devel-CheckLib",
+ "perl-Devel-Cycle",
+ "perl-Devel-EnforceEncapsulation",
+ "perl-Devel-GlobalDestruction",
+ "perl-Devel-GlobalDestruction-XS",
+ "perl-Devel-Hide",
+ "perl-Devel-Leak",
+ "perl-Devel-LexAlias",
+ "perl-Devel-Size",
+ "perl-Devel-StackTrace",
+ "perl-Devel-Symdump",
+ "perl-Digest-BubbleBabble",
+ "perl-Digest-CRC",
+ "perl-Digest-HMAC",
+ "perl-Digest-SHA1",
+ "perl-Dist-CheckConflicts",
+ "perl-DynaLoader-Functions",
+ "perl-Email-Address",
+ "perl-Email-Date-Format",
+ "perl-Encode-Detect",
+ "perl-Encode-EUCJPASCII",
+ "perl-Encode-IMAPUTF7",
+ "perl-Encode-Locale",
+ "perl-Env-ShellWords",
+ "perl-Error",
+ "perl-EV",
+ "perl-Eval-Closure",
+ "perl-Event",
+ "perl-Exception-Class",
+ "perl-Expect",
+ "perl-ExtUtils-Config",
+ "perl-ExtUtils-Depends",
+ "perl-ExtUtils-Helpers",
+ "perl-ExtUtils-InstallPaths",
+ "perl-ExtUtils-PkgConfig",
+ "perl-FCGI",
+ "perl-Fedora-VSP",
+ "perl-FFI-CheckLib",
+ "perl-File-BaseDir",
+ "perl-File-BOM",
+ "perl-File-chdir",
+ "perl-File-CheckTree",
+ "perl-File-Copy-Recursive",
+ "perl-File-DesktopEntry",
+ "perl-File-Find-Object",
+ "perl-File-Find-Object-Rule",
+ "perl-File-Find-Rule",
+ "perl-File-Find-Rule-Perl",
+ "perl-File-Inplace",
+ "perl-File-Listing",
+ "perl-File-MimeInfo",
+ "perl-File-pushd",
+ "perl-File-ReadBackwards",
+ "perl-File-Remove",
+ "perl-File-ShareDir",
+ "perl-File-ShareDir-Install",
+ "perl-File-Slurp",
+ "perl-File-Slurp-Tiny",
+ "perl-File-Slurper",
+ "perl-File-Type",
+ "perl-Font-TTF",
+ "perl-FreezeThaw",
+ "perl-GD",
+ "perl-GD-Barcode",
+ "perl-generators",
+ "perl-Getopt-ArgvFile",
+ "perl-gettext",
+ "perl-Graphics-ColorNamesLite-WWW",
+ "perl-GSSAPI",
+ "perl-Guard",
+ "perl-Hook-LexWrap",
+ "perl-HTML-Parser",
+ "perl-HTML-Tagset",
+ "perl-HTML-Tree",
+ "perl-HTTP-Cookies",
+ "perl-HTTP-Daemon",
+ "perl-HTTP-Date",
+ "perl-HTTP-Message",
+ "perl-HTTP-Negotiate",
+ "perl-Image-Base",
+ "perl-Image-Info",
+ "perl-Image-Xbm",
+ "perl-Image-Xpm",
+ "perl-Import-Into",
+ "perl-Importer",
+ "perl-inc-latest",
+ "perl-indirect",
+ "perl-Inline-Files",
+ "perl-IO-AIO",
+ "perl-IO-All",
+ "perl-IO-CaptureOutput",
+ "perl-IO-Compress-Lzma",
+ "perl-IO-HTML",
+ "perl-IO-Multiplex",
+ "perl-IO-SessionData",
+ "perl-IO-Socket-INET6",
+ "perl-IO-String",
+ "perl-IO-stringy",
+ "perl-IO-Tty",
+ "perl-IPC-Run",
+ "perl-IPC-Run3",
+ "perl-IPC-System-Simple",
+ "perl-JSON",
+ "perl-JSON-Color",
+ "perl-JSON-MaybeXS",
+ "perl-LDAP",
+ "perl-libnet",
+ "perl-libwww-perl",
+ "perl-libxml-perl",
+ "perl-Lingua-EN-Inflect",
+ "perl-List-MoreUtils-XS",
+ "perl-local-lib",
+ "perl-Locale-Codes",
+ "perl-Locale-Maketext-Gettext",
+ "perl-Locale-Msgfmt",
+ "perl-Locale-PO",
+ "perl-Log-Message",
+ "perl-Log-Message-Simple",
+ "perl-LWP-MediaTypes",
+ "perl-LWP-Protocol-https",
+ "perl-Mail-AuthenticationResults",
+ "perl-Mail-DKIM",
+ "perl-Mail-IMAPTalk",
+ "perl-Mail-SPF",
+ "perl-MailTools",
+ "perl-Math-Int64",
+ "perl-Math-Random-ISAAC",
+ "perl-MIME-Charset",
+ "perl-MIME-Lite",
+ "perl-MIME-Types",
+ "perl-Mixin-Linewise",
+ "perl-MLDBM",
+ "perl-Mock-Config",
+ "perl-Module-Build-Tiny",
+ "perl-Module-CPANfile",
+ "perl-Module-Implementation",
+ "perl-Module-Install-AuthorRequires",
+ "perl-Module-Install-AuthorTests",
+ "perl-Module-Install-AutoLicense",
+ "perl-Module-Install-GithubMeta",
+ "perl-Module-Install-ManifestSkip",
+ "perl-Module-Install-ReadmeFromPod",
+ "perl-Module-Install-ReadmeMarkdownFromPod",
+ "perl-Module-Install-Repository",
+ "perl-Module-Install-TestBase",
+ "perl-Module-Load-Util",
+ "perl-Module-Manifest",
+ "perl-Module-Manifest-Skip",
+ "perl-Module-Package",
+ "perl-Module-Package-Au",
+ "perl-Module-Pluggable",
+ "perl-Module-Runtime",
+ "perl-Module-Signature",
+ "perl-Mojolicious",
+ "perl-Moo",
+ "perl-Mozilla-CA",
+ "perl-Mozilla-LDAP",
+ "perl-MRO-Compat",
+ "perl-multidimensional",
+ "perl-namespace-autoclean",
+ "perl-namespace-clean",
+ "perl-Net-CIDR-Lite",
+ "perl-Net-Daemon",
+ "perl-Net-DNS",
+ "perl-Net-DNS-Resolver-Mock",
+ "perl-Net-DNS-Resolver-Programmable",
+ "perl-Net-HTTP",
+ "perl-Net-IMAP-Simple",
+ "perl-Net-IMAP-Simple-SSL",
+ "perl-Net-IP",
+ "perl-Net-LibIDN2",
+ "perl-Net-Patricia",
+ "perl-Net-SMTP-SSL",
+ "perl-Net-SNMP",
+ "perl-Net-Telnet",
+ "perl-Newt",
+ "perl-NNTPClient",
+ "perl-NTLM",
+ "perl-Number-Compare",
+ "perl-Object-Deadly",
+ "perl-Object-HashBase",
+ "perl-Package-Anon",
+ "perl-Package-Constants",
+ "perl-Package-DeprecationManager",
+ "perl-Package-Generator",
+ "perl-Package-Stash",
+ "perl-Package-Stash-XS",
+ "perl-PadWalker",
+ "perl-Paper-Specs",
+ "perl-PAR-Dist",
+ "perl-Parallel-Iterator",
+ "perl-Params-Classify",
+ "perl-Params-Util",
+ "perl-Params-Validate",
+ "perl-Params-ValidationCompiler",
+ "perl-Parse-PMFile",
+ "perl-Parse-RecDescent",
+ "perl-Parse-Yapp",
+ "perl-Path-Tiny",
+ "perl-Perl-Critic",
+ "perl-Perl-Critic-More",
+ "perl-Perl-Destruct-Level",
+ "perl-Perl-MinimumVersion",
+ "perl-Perl4-CoreLibs",
+ "perl-PerlIO-gzip",
+ "perl-PerlIO-utf8_strict",
+ "perl-PkgConfig-LibPkgConf",
+ "perl-Pod-Coverage",
+ "perl-Pod-Coverage-TrustPod",
+ "perl-Pod-Escapes",
+ "perl-Pod-Eventual",
+ "perl-Pod-LaTeX",
+ "perl-Pod-Markdown",
+ "perl-Pod-Parser",
+ "perl-Pod-Plainer",
+ "perl-Pod-POM",
+ "perl-Pod-Spell",
+ "perl-PPI",
+ "perl-PPI-HTML",
+ "perl-PPIx-QuoteLike",
+ "perl-PPIx-Regexp",
+ "perl-PPIx-Utilities",
+ "perl-prefork",
+ "perl-Probe-Perl",
+ "perl-Razor-Agent",
+ "perl-Readonly",
+ "perl-Readonly-XS",
+ "perl-Ref-Util",
+ "perl-Ref-Util-XS",
+ "perl-Regexp-Pattern-Perl",
+ "perl-Return-MultiLevel",
+ "perl-Role-Tiny",
+ "perl-Scope-Guard",
+ "perl-Scope-Upper",
+ "perl-SGMLSpm",
+ "perl-SNMP_Session",
+ "perl-Socket6",
+ "perl-Software-License",
+ "perl-Sort-Versions",
+ "perl-Specio",
+ "perl-Spiffy",
+ "perl-strictures",
+ "perl-String-CRC32",
+ "perl-String-Format",
+ "perl-String-ShellQuote",
+ "perl-String-Similarity",
+ "perl-Sub-Exporter",
+ "perl-Sub-Exporter-Progressive",
+ "perl-Sub-Identify",
+ "perl-Sub-Info",
+ "perl-Sub-Install",
+ "perl-Sub-Name",
+ "perl-Sub-Quote",
+ "perl-Sub-Uplevel",
+ "perl-SUPER",
+ "perl-Switch",
+ "perl-Syntax-Highlight-Engine-Kate",
+ "perl-Sys-CPU",
+ "perl-Sys-MemInfo",
+ "perl-Sys-Virt",
+ "perl-Taint-Runtime",
+ "perl-Task-Weaken",
+ "perl-Term-Size-Any",
+ "perl-Term-Size-Perl",
+ "perl-Term-Table",
+ "perl-Term-UI",
+ "perl-TermReadKey",
+ "perl-Test-Base",
+ "perl-Test-ClassAPI",
+ "perl-Test-CPAN-Meta",
+ "perl-Test-CPAN-Meta-JSON",
+ "perl-Test-Deep",
+ "perl-Test-Differences",
+ "perl-Test-DistManifest",
+ "perl-Test-Distribution",
+ "perl-Test-EOL",
+ "perl-Test-Exception",
+ "perl-Test-Exit",
+ "perl-Test-FailWarnings",
+ "perl-Test-Fatal",
+ "perl-Test-File",
+ "perl-Test-File-ShareDir",
+ "perl-Test-Harness",
+ "perl-Test-HasVersion",
+ "perl-Test-InDistDir",
+ "perl-Test-Inter",
+ "perl-Test-LeakTrace",
+ "perl-Test-LongString",
+ "perl-Test-Manifest",
+ "perl-Test-Memory-Cycle",
+ "perl-Test-MinimumVersion",
+ "perl-Test-MockObject",
+ "perl-Test-MockRandom",
+ "perl-Test-Needs",
+ "perl-Test-NoTabs",
+ "perl-Test-NoWarnings",
+ "perl-Test-Object",
+ "perl-Test-Output",
+ "perl-Test-Pod",
+ "perl-Test-Pod-Coverage",
+ "perl-Test-Portability-Files",
+ "perl-Test-Requires",
+ "perl-Test-RequiresInternet",
+ "perl-Test-Script",
+ "perl-Test-Simple",
+ "perl-Test-SubCalls",
+ "perl-Test-Synopsis",
+ "perl-Test-Taint",
+ "perl-Test-TrailingSpace",
+ "perl-Test-utf8",
+ "perl-Test-Vars",
+ "perl-Test-Warn",
+ "perl-Test-Without-Module",
+ "perl-Test2-Plugin-NoWarnings",
+ "perl-Test2-Suite",
+ "perl-Test2-Tools-Explain",
+ "perl-Text-CharWidth",
+ "perl-Text-CSV_XS",
+ "perl-Text-Diff",
+ "perl-Text-Glob",
+ "perl-Text-Iconv",
+ "perl-Text-Soundex",
+ "perl-Text-Unidecode",
+ "perl-Text-WrapI18N",
+ "perl-Tie-IxHash",
+ "perl-TimeDate",
+ "perl-Tree-DAG_Node",
+ "perl-Unicode-EastAsianWidth",
+ "perl-Unicode-LineBreak",
+ "perl-Unicode-Map8",
+ "perl-Unicode-String",
+ "perl-Unicode-UTF8",
+ "perl-UNIVERSAL-can",
+ "perl-UNIVERSAL-isa",
+ "perl-Unix-Syslog",
+ "perl-URI",
+ "perl-Variable-Magic",
+ "perl-Version-Requirements",
+ "perl-WWW-RobotRules",
+ "perl-XML-Catalog",
+ "perl-XML-DOM",
+ "perl-XML-Dumper",
+ "perl-XML-Filter-BufferText",
+ "perl-XML-Generator",
+ "perl-XML-Grove",
+ "perl-XML-Handler-YAWriter",
+ "perl-XML-LibXML",
+ "perl-XML-LibXSLT",
+ "perl-XML-NamespaceSupport",
+ "perl-XML-Parser-Lite",
+ "perl-XML-RegExp",
+ "perl-XML-SAX",
+ "perl-XML-SAX-Base",
+ "perl-XML-SAX-Writer",
+ "perl-XML-Simple",
+ "perl-XML-TokeParser",
+ "perl-XML-TreeBuilder",
+ "perl-XML-Twig",
+ "perl-XML-Writer",
+ "perl-XML-XPath",
+ "perl-XML-XPathEngine",
+ "perl-XString",
+ "perl-YAML-LibYAML",
+ "perl-YAML-PP",
+ "perl-YAML-Syck",
+ "perltidy",
+ "pesign",
+ "phodav",
+ "php",
+ "php-pear",
+ "php-pecl-zip",
+ "physfs",
+ "picosat",
+ "pinfo",
+ "pipewire",
+ "pixman",
+ "pkcs11-helper",
+ "pkgconf",
+ "plexus-cipher",
+ "plexus-containers",
+ "plexus-sec-dispatcher",
+ "plotutils",
+ "pmdk-convert",
+ "pmix",
+ "pngcrush",
+ "pngnq",
+ "po4a",
+ "podman",
+ "poetry",
+ "policycoreutils",
+ "polkit-pkla-compat",
+ "polkit-qt-1",
+ "portreserve",
+ "postfix",
+ "potrace",
+ "powertop",
+ "ppp",
+ "pps-tools",
+ "pptp",
+ "priv_wrapper",
+ "procmail",
+ "prometheus",
+ "prometheus-node-exporter",
+ "ps_mem",
+ "psacct",
+ "psutils",
+ "ptlib",
+ "publicsuffix-list",
+ "pugixml",
+ "pulseaudio",
+ "puppet",
+ "pwgen",
+ "pyatspi",
+ "pybind11",
+ "pycairo",
+ "pyelftools",
+ "pyflakes",
+ "pygobject3",
+ "PyGreSQL",
+ "pykickstart",
+ "pylint",
+ "pyparted",
+ "pyproject-rpm-macros",
+ "pyserial",
+ "python-absl-py",
+ "python-aiodns",
+ "python-aiohttp",
+ "python-alsa",
+ "python-argcomplete",
+ "python-astroid",
+ "python-astunparse",
+ "python-async-generator",
+ "python-augeas",
+ "python-azure-sdk",
+ "python-beautifulsoup4",
+ "python-betamax",
+ "python-blinker",
+ "python-blivet",
+ "python-cached_property",
+ "python-charset-normalizer",
+ "python-cheetah",
+ "python-click",
+ "python-cmd2",
+ "python-colorama",
+ "python-CommonMark",
+ "python-conda-package-handling",
+ "python-configshell",
+ "python-cpuinfo",
+ "python-cups",
+ "python-curio",
+ "python-cytoolz",
+ "python-d2to1",
+ "python-dbus-client-gen",
+ "python-dbus-python-client-gen",
+ "python-dbus-signature-pyparsing",
+ "python-dbusmock",
+ "python-ddt",
+ "python-debtcollector",
+ "python-decorator",
+ "python-distlib",
+ "python-dmidecode",
+ "python-dns",
+ "python-dtopt",
+ "python-dulwich",
+ "python-editables",
+ "python-enchant",
+ "python-entrypoints",
+ "python-ethtool",
+ "python-evdev",
+ "python-extras",
+ "python-faker",
+ "python-fasteners",
+ "python-fastjsonschema",
+ "python-fields",
+ "python-filelock",
+ "python-fixtures",
+ "python-flake8",
+ "python-flask",
+ "python-flit",
+ "python-flit-core",
+ "python-fluidity-sm",
+ "python-frozendict",
+ "python-funcsigs",
+ "python-gast",
+ "python-genshi",
+ "python-google-auth",
+ "python-google-auth-oauthlib",
+ "python-greenlet",
+ "python-gssapi",
+ "python-h5py",
+ "python-hatch-fancy-pypi-readme",
+ "python-hatch-vcs",
+ "python-hatchling",
+ "python-hs-dbus-signature",
+ "python-html5lib",
+ "python-httplib2",
+ "python-humanize",
+ "python-hwdata",
+ "python-importlib-metadata",
+ "python-inotify",
+ "python-into-dbus-python",
+ "python-IPy",
+ "python-iso8601",
+ "python-isodate",
+ "python-isort",
+ "python-itsdangerous",
+ "python-justbases",
+ "python-justbytes",
+ "python-jwcrypto",
+ "python-jwt",
+ "python-kdcproxy",
+ "python-kerberos",
+ "python-kmod",
+ "python-kubernetes",
+ "python-lark",
+ "python-lazy-object-proxy",
+ "python-ldap",
+ "python-linux-procfs",
+ "python-lit",
+ "python-looseversion",
+ "python-markdown",
+ "python-markdown-it-py",
+ "python-mccabe",
+ "python-mdurl",
+ "python-memcached",
+ "python-mimeparse",
+ "python-mock",
+ "python-monotonic",
+ "python-more-itertools",
+ "python-mpmath",
+ "python-msal",
+ "python-msrestazure",
+ "python-mutagen",
+ "python-networkx",
+ "python-nose2",
+ "python-ntlm-auth",
+ "python-oauth2client",
+ "python-openpyxl",
+ "python-openstackdocstheme",
+ "python-oslo-i18n",
+ "python-oslo-sphinx",
+ "python-paramiko",
+ "python-pathspec",
+ "python-pefile",
+ "python-pexpect",
+ "python-pkgconfig",
+ "python-platformdirs",
+ "python-pluggy",
+ "python-podman-api",
+ "python-poetry-core",
+ "python-process-tests",
+ "python-productmd",
+ "python-ptyprocess",
+ "python-pycares",
+ "python-pycosat",
+ "python-pydbus",
+ "python-pymongo",
+ "python-PyMySQL",
+ "python-pyperclip",
+ "python-pyroute2",
+ "python-pyrsistent",
+ "python-pysocks",
+ "python-pytest-benchmark",
+ "python-pytest-cov",
+ "python-pytest-expect",
+ "python-pytest-flake8",
+ "python-pytest-flakes",
+ "python-pytest-forked",
+ "python-pytest-mock",
+ "python-pytest-relaxed",
+ "python-pytest-runner",
+ "python-pytest-subtests",
+ "python-pytest-timeout",
+ "python-pytest-xdist",
+ "python-pytoml",
+ "python-pyudev",
+ "python-pywbem",
+ "python-qrcode",
+ "python-rdflib",
+ "python-recommonmark",
+ "python-requests-file",
+ "python-requests-ftp",
+ "python-requests-kerberos",
+ "python-requests-mock",
+ "python-requests-oauthlib",
+ "python-requests-toolbelt",
+ "python-requests_ntlm",
+ "python-responses",
+ "python-retrying",
+ "python-rfc3986",
+ "python-rich",
+ "python-rpm-generators",
+ "python-rpmfluff",
+ "python-rtslib",
+ "python-ruamel-yaml",
+ "python-ruamel-yaml-clib",
+ "python-s3transfer",
+ "python-schedutils",
+ "python-semantic_version",
+ "python-should_dsl",
+ "python-simpleline",
+ "python-slip",
+ "python-sniffio",
+ "python-sortedcontainers",
+ "python-soupsieve",
+ "python-sphinx",
+ "python-sphinx-epytext",
+ "python-sphinx-theme-py3doc-enhanced",
+ "python-sphinx_rtd_theme",
+ "python-sphinxcontrib-apidoc",
+ "python-sphinxcontrib-applehelp",
+ "python-sphinxcontrib-devhelp",
+ "python-sphinxcontrib-htmlhelp",
+ "python-sphinxcontrib-httpdomain",
+ "python-sphinxcontrib-jsmath",
+ "python-sphinxcontrib-qthelp",
+ "python-sphinxcontrib-serializinghtml",
+ "python-sqlalchemy",
+ "python-suds",
+ "python-systemd",
+ "python-tempita",
+ "python-templated-dictionary",
+ "python-termcolor",
+ "python-testpath",
+ "python-testresources",
+ "python-testscenarios",
+ "python-testtools",
+ "python-tidy",
+ "python-toml",
+ "python-tomli",
+ "python-toolz",
+ "python-tornado",
+ "python-tox",
+ "python-tox-current-env",
+ "python-tqdm",
+ "python-trio",
+ "python-trove-classifiers",
+ "python-typing-extensions",
+ "python-uamqp",
+ "python-unittest2",
+ "python-uritemplate",
+ "python-urwid",
+ "python-varlink",
+ "python-versioneer",
+ "python-virt-firmware",
+ "python-voluptuous",
+ "python-waitress",
+ "python-webencodings",
+ "python-webtest",
+ "python-wheel",
+ "python-whoosh",
+ "python-winrm",
+ "python-wrapt",
+ "python-xmltodict",
+ "python-yubico",
+ "python-zipp",
+ "python-zmq",
+ "python-zstd",
+ "python3-mallard-ducktype",
+ "python3-pytest-asyncio",
+ "python3-typed_ast",
+ "pyusb",
+ "pywbem",
+ "pyxattr",
+ "qemu",
+ "qhull",
+ "qpdf",
+ "qperf",
+ "qr-code-generator",
+ "qt-rpm-macros",
+ "qt5-qtconnectivity",
+ "qt5-qtsensors",
+ "qt5-qtserialport",
+ "qtbase",
+ "qtdeclarative",
+ "qtsvg",
+ "qttools",
+ "quagga",
+ "quota",
+ "radvd",
+ "ragel",
+ "raptor2",
+ "rarian",
+ "rasdaemon",
+ "rasqal",
+ "rcs",
+ "rdist",
+ "rdma-core",
+ "re2",
+ "re2c",
+ "realmd",
+ "rear",
+ "recode",
+ "redland",
+ "resource-agents",
+ "rest",
+ "rhash",
+ "rlwrap",
+ "rp-pppoe",
+ "rpm-mpi-hooks",
+ "rpmdevtools",
+ "rpmlint",
+ "rtkit",
+ "rtl-sdr",
+ "ruby-augeas",
+ "rubygem-bson",
+ "rubygem-coderay",
+ "rubygem-diff-lcs",
+ "rubygem-flexmock",
+ "rubygem-hpricot",
+ "rubygem-introspection",
+ "rubygem-liquid",
+ "rubygem-maruku",
+ "rubygem-metaclass",
+ "rubygem-mongo",
+ "rubygem-mustache",
+ "rubygem-mysql2",
+ "rubygem-pkg-config",
+ "rubygem-rake",
+ "rubygem-rake-compiler",
+ "rubygem-ronn",
+ "rubygem-rouge",
+ "rubygem-rspec",
+ "rubygem-rspec-expectations",
+ "rubygem-rspec-mocks",
+ "rubygem-rspec-support",
+ "rubygem-thread_order",
+ "rusers",
+ "rust-cbindgen",
+ "samba",
+ "sanlock",
+ "sassist",
+ "satyr",
+ "sbc",
+ "sblim-cim-client2",
+ "sblim-cmpi-base",
+ "sblim-cmpi-devel",
+ "sblim-cmpi-fsvol",
+ "sblim-cmpi-network",
+ "sblim-cmpi-nfsv3",
+ "sblim-cmpi-nfsv4",
+ "sblim-cmpi-params",
+ "sblim-cmpi-sysfs",
+ "sblim-cmpi-syslog",
+ "sblim-indication_helper",
+ "sblim-sfcb",
+ "sblim-sfcc",
+ "sblim-sfcCommon",
+ "sblim-testsuite",
+ "sblim-wbemcli",
+ "scl-utils",
+ "scotch",
+ "screen",
+ "scrub",
+ "SDL",
+ "SDL2",
+ "SDL_sound",
+ "sdparm",
+ "seabios",
+ "secilc",
+ "selinux-policy",
+ "sendmail",
+ "serd",
+ "setools",
+ "setserial",
+ "setuptool",
+ "sgabios",
+ "sgml-common",
+ "sgpio",
+ "shared-mime-info",
+ "sharutils",
+ "sip",
+ "sisu",
+ "skkdic",
+ "sleuthkit",
+ "slirp4netns",
+ "smartmontools",
+ "smc-tools",
+ "socket_wrapper",
+ "softhsm",
+ "sombok",
+ "sord",
+ "sos",
+ "sound-theme-freedesktop",
+ "soundtouch",
+ "sox",
+ "soxr",
+ "sparsehash",
+ "spausedd",
+ "speex",
+ "speexdsp",
+ "spice-protocol",
+ "spice-vdagent",
+ "spirv-headers",
+ "spirv-tools",
+ "splix",
+ "squashfs-tools",
+ "squid",
+ "sratom",
+ "sscg",
+ "star",
+ "startup-notification",
+ "stunnel",
+ "subscription-manager",
+ "suitesparse",
+ "SuperLU",
+ "supermin",
+ "switcheroo-control",
+ "swtpm",
+ "symlinks",
+ "sympy",
+ "sysfsutils",
+ "systemd",
+ "systemd-bootchart",
+ "t1lib",
+ "t1utils",
+ "taglib",
+ "tang",
+ "targetcli",
+ "tbb",
+ "tcl-pgtcl",
+ "tclx",
+ "teckit",
+ "telnet",
+ "thrift",
+ "tidy",
+ "time",
+ "tini",
+ "tinycdb",
+ "tix",
+ "tk",
+ "tlog",
+ "tmpwatch",
+ "tn5250",
+ "tofrodos",
+ "tokyocabinet",
+ "trace-cmd",
+ "tss2",
+ "ttembed",
+ "ttmkfdir",
+ "tuna",
+ "twolame",
+ "uchardet",
+ "uclibc-ng",
+ "ucpp",
+ "ucs-miscfixed-fonts",
+ "ucx",
+ "udftools",
+ "udica",
+ "udisks2",
+ "uglify-js",
+ "uid_wrapper",
+ "unicode-emoji",
+ "unicode-ucd",
+ "unique3",
+ "units",
+ "upower",
+ "uriparser",
+ "urlview",
+ "usb_modeswitch",
+ "usb_modeswitch-data",
+ "usbguard",
+ "usbip",
+ "usbmuxd",
+ "usbredir",
+ "usermode",
+ "ustr",
+ "uthash",
+ "uuid",
+ "uw-imap",
+ "v4l-utils",
+ "vhostmd",
+ "vino",
+ "virglrenderer",
+ "virt-p2v",
+ "virt-top",
+ "virt-what",
+ "virt-who",
+ "vitess",
+ "vmem",
+ "volume_key",
+ "vorbis-tools",
+ "vte291",
+ "vulkan-headers",
+ "vulkan-loader",
+ "watchdog",
+ "wavpack",
+ "wayland",
+ "wayland-protocols",
+ "web-assets",
+ "webrtc-audio-processing",
+ "websocketpp",
+ "wget",
+ "whois",
+ "wireguard-tools",
+ "wireless-regdb",
+ "wireshark",
+ "woff2",
+ "wordnet",
+ "words",
+ "wpebackend-fdo",
+ "wsmancli",
+ "wvdial",
+ "x3270",
+ "xapian-core",
+ "Xaw3d",
+ "xcb-proto",
+ "xcb-util",
+ "xcb-util-image",
+ "xcb-util-keysyms",
+ "xcb-util-renderutil",
+ "xcb-util-wm",
+ "xdelta",
+ "xdg-dbus-proxy",
+ "xdg-utils",
+ "xdp-tools",
+ "xerces-c",
+ "xfconf",
+ "xfsdump",
+ "xhtml1-dtds",
+ "xkeyboard-config",
+ "xmlstarlet",
+ "xmltoman",
+ "xmvn",
+ "xorg-x11-apps",
+ "xorg-x11-drv-libinput",
+ "xorg-x11-font-utils",
+ "xorg-x11-fonts",
+ "xorg-x11-proto-devel",
+ "xorg-x11-server",
+ "xorg-x11-server-utils",
+ "xorg-x11-util-macros",
+ "xorg-x11-utils",
+ "xorg-x11-xauth",
+ "xorg-x11-xbitmaps",
+ "xorg-x11-xinit",
+ "xorg-x11-xkb-utils",
+ "xorg-x11-xtrans-devel",
+ "xrestop",
+ "xterm",
+ "xxhash",
+ "yajl",
+ "yaml-cpp",
+ "yasm",
+ "yelp-tools",
+ "yelp-xsl",
+ "ykclient",
+ "yp-tools",
+ "ypbind",
+ "ypserv",
+ "z3",
+ "zenity",
+ "zerofree",
+ "zfs-fuse",
+ "zipper",
+ "zopfli",
+ "zziplib"
+ ]
+ },
+ "Fedora (Copyright Remi Collet)": {
+ "license": "[CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode)",
+ "specs": [
+ "libmemcached-awesome",
+ "librabbitmq"
+ ]
+ },
+ "Fedora (ISC)": {
+ "license": "[ISC License](https://github.com/sarugaku/resolvelib/blob/main/LICENSE)",
+ "specs": [
+ "python-resolvelib"
+ ]
+ },
+ "Magnus Edenhill Open Source": {
+ "license": "[Magnus Edenhill Open Source BSD License](https://github.com/jemalloc/jemalloc/blob/dev/COPYING)",
+ "specs": [
+ "librdkafka"
+ ]
+ },
+ "Microsoft": {
+ "license": "[Microsoft MIT License](/LICENSES-AND-NOTICES/LICENSE.md)",
+ "specs": [
+ "application-gateway-kubernetes-ingress",
+ "asc",
+ "azcopy",
+ "azure-iot-sdk-c",
+ "azure-nvme-utils",
+ "azure-storage-cpp",
+ "azurelinux-release",
+ "azurelinux-repos",
+ "azurelinux-rpm-macros",
+ "azurelinux-sysinfo",
+ "bazel",
+ "blobfuse2",
+ "bmon",
+ "bpftrace",
+ "ccache",
+ "cert-manager",
+ "cf-cli",
+ "check-restart",
+ "clamav",
+ "cloud-hypervisor",
+ "cmake-fedora",
+ "containerd",
+ "coredns",
+ "dcos-cli",
+ "debugedit",
+ "dejavu-fonts",
+ "distroless-packages",
+ "docker-buildx",
+ "docker-cli",
+ "docker-compose",
+ "doxygen",
+ "dtc",
+ "elixir",
+ "espeak-ng",
+ "espeakup",
+ "flannel",
+ "fluent-bit",
+ "freefont",
+ "gflags",
+ "gh",
+ "go-md2man",
+ "grpc",
+ "grub2-efi-binary-signed",
+ "GSL",
+ "gtk-update-icon-cache",
+ "helm",
+ "hvloader",
+ "ig",
+ "intel-pf-bb-config",
+ "ivykis",
+ "jsonbuilder",
+ "jx",
+ "kata-containers-cc",
+ "kata-packages-uvm",
+ "keda",
+ "keras",
+ "kernel-signed",
+ "kpatch",
+ "kube-vip-cloud-provider",
+ "kubernetes",
+ "libacvp",
+ "libconfini",
+ "libconfuse",
+ "libgdiplus",
+ "libmaxminddb",
+ "libmetalink",
+ "libsafec",
+ "libuv",
+ "libxml++",
+ "lld",
+ "local-path-provisioner",
+ "lsb-release",
+ "ltp",
+ "lttng-consume",
+ "mm-common",
+ "moby-containerd-cc",
+ "moby-engine",
+ "msgpack",
+ "ncompress",
+ "networkd-dispatcher",
+ "nlohmann-json",
+ "nmap",
+ "node-problem-detector",
+ "ntopng",
+ "opentelemetry-cpp",
+ "packer",
+ "pcaudiolib",
+ "pcre2",
+ "perl-Test-Warnings",
+ "perl-Text-Template",
+ "pigz",
+ "prebuilt-ca-certificates",
+ "prebuilt-ca-certificates-base",
+ "prometheus-adapter",
+ "python-cachetools",
+ "python-cherrypy",
+ "python-cstruct",
+ "python-execnet",
+ "python-google-pasta",
+ "python-libclang",
+ "python-libevdev",
+ "python-logutils",
+ "python-ml-dtypes",
+ "python-namex",
+ "python-nocasedict",
+ "python-opt-einsum",
+ "python-optree",
+ "python-pecan",
+ "python-pip",
+ "python-pyrpm",
+ "python-remoto",
+ "python-repoze-lru",
+ "python-routes",
+ "python-rsa",
+ "python-setuptools",
+ "python-sphinxcontrib-websupport",
+ "python-tensorboard",
+ "python-tensorboard-plugin-wit",
+ "python-yamlloader",
+ "R",
+ "rabbitmq-server",
+ "rocksdb",
+ "rubygem-addressable",
+ "rubygem-asciidoctor",
+ "rubygem-async",
+ "rubygem-async-http",
+ "rubygem-async-io",
+ "rubygem-async-pool",
+ "rubygem-bindata",
+ "rubygem-concurrent-ruby",
+ "rubygem-connection_pool",
+ "rubygem-console",
+ "rubygem-cool.io",
+ "rubygem-deep_merge",
+ "rubygem-digest-crc",
+ "rubygem-elastic-transport",
+ "rubygem-elasticsearch",
+ "rubygem-elasticsearch-api",
+ "rubygem-eventmachine",
+ "rubygem-excon",
+ "rubygem-faraday",
+ "rubygem-faraday-em_http",
+ "rubygem-faraday-em_synchrony",
+ "rubygem-faraday-excon",
+ "rubygem-faraday-httpclient",
+ "rubygem-faraday-multipart",
+ "rubygem-faraday-net_http",
+ "rubygem-faraday-net_http_persistent",
+ "rubygem-faraday-patron",
+ "rubygem-faraday-rack",
+ "rubygem-faraday-retry",
+ "rubygem-ffi",
+ "rubygem-fiber-local",
+ "rubygem-fluent-config-regexp-type",
+ "rubygem-fluent-logger",
+ "rubygem-fluent-plugin-elasticsearch",
+ "rubygem-fluent-plugin-kafka",
+ "rubygem-fluent-plugin-prometheus",
+ "rubygem-fluent-plugin-prometheus_pushgateway",
+ "rubygem-fluent-plugin-record-modifier",
+ "rubygem-fluent-plugin-rewrite-tag-filter",
+ "rubygem-fluent-plugin-systemd",
+ "rubygem-fluent-plugin-webhdfs",
+ "rubygem-fluent-plugin-windows-exporter",
+ "rubygem-fluentd",
+ "rubygem-hirb",
+ "rubygem-hocon",
+ "rubygem-hoe",
+ "rubygem-http_parser",
+ "rubygem-httpclient",
+ "rubygem-io-event",
+ "rubygem-jmespath",
+ "rubygem-ltsv",
+ "rubygem-mini_portile2",
+ "rubygem-minitest",
+ "rubygem-mocha",
+ "rubygem-msgpack",
+ "rubygem-multi_json",
+ "rubygem-multipart-post",
+ "rubygem-net-http-persistent",
+ "rubygem-nio4r",
+ "rubygem-nokogiri",
+ "rubygem-oj",
+ "rubygem-parallel",
+ "rubygem-power_assert",
+ "rubygem-prometheus-client",
+ "rubygem-protocol-hpack",
+ "rubygem-protocol-http",
+ "rubygem-protocol-http1",
+ "rubygem-protocol-http2",
+ "rubygem-public_suffix",
+ "rubygem-puppet-resource_api",
+ "rubygem-rdiscount",
+ "rubygem-rdkafka",
+ "rubygem-rexml",
+ "rubygem-ruby-kafka",
+ "rubygem-ruby-progressbar",
+ "rubygem-rubyzip",
+ "rubygem-semantic_puppet",
+ "rubygem-serverengine",
+ "rubygem-sigdump",
+ "rubygem-strptime",
+ "rubygem-systemd-journal",
+ "rubygem-test-unit",
+ "rubygem-thor",
+ "rubygem-timers",
+ "rubygem-tzinfo",
+ "rubygem-tzinfo-data",
+ "rubygem-webhdfs",
+ "rubygem-webrick",
+ "rubygem-yajl-ruby",
+ "rubygem-zip-zip",
+ "runc",
+ "sdbus-cpp",
+ "sgx-backwards-compatibility",
+ "shim",
+ "shim-unsigned",
+ "shim-unsigned-aarch64",
+ "shim-unsigned-x64",
+ "skopeo",
+ "span-lite",
+ "sriov-network-device-plugin",
+ "SymCrypt",
+ "SymCrypt-OpenSSL",
+ "tensorflow",
+ "tinyxml2",
+ "toml11",
+ "tracelogging",
+ "umoci",
+ "usrsctp",
+ "vala",
+ "verity-read-only-root",
+ "vnstat",
+ "zstd"
+ ]
+ },
+ "Netplan source": {
+ "license": "[GPLv3](https://github.com/canonical/netplan/blob/main/COPYING)",
+ "specs": [
+ "netplan"
+ ]
+ },
+ "Numad source": {
+ "license": "[LGPLv2 License](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt)",
+ "specs": [
+ "numad"
+ ]
+ },
+ "NVIDIA": {
+ "license": "[ASL 2.0 License and spec specific licenses](http://www.apache.org/licenses/LICENSE-2.0)",
+ "specs": [
+ "libnvidia-container",
+ "mlnx-tools",
+ "mlx-bootctl",
+ "nvidia-container-toolkit",
+ "ofed-scripts",
+ "perftest"
+ ]
+ },
+ "OpenEuler": {
+ "license": "[BSD-3 License](https://github.com/pytorch/pytorch/blob/master/LICENSE)",
+ "specs": [
+ "pytorch"
+ ]
+ },
+ "OpenMamba": {
+ "license": "[Openmamba GPLv2 License](https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt)",
+ "specs": [
+ "bash-completion"
+ ]
+ },
+ "OpenSUSE": {
+ "license": "Following [openSUSE guidelines](https://en.opensuse.org/openSUSE:Specfile_guidelines#Specfile_Licensing)",
+ "specs": [
+ "ant",
+ "ant-junit",
+ "antlr",
+ "aopalliance",
+ "apache-commons-beanutils",
+ "apache-commons-cli",
+ "apache-commons-codec",
+ "apache-commons-collections",
+ "apache-commons-collections4",
+ "apache-commons-compress",
+ "apache-commons-daemon",
+ "apache-commons-dbcp",
+ "apache-commons-digester",
+ "apache-commons-httpclient",
+ "apache-commons-io",
+ "apache-commons-jexl",
+ "apache-commons-lang",
+ "apache-commons-lang3",
+ "apache-commons-logging",
+ "apache-commons-net",
+ "apache-commons-pool",
+ "apache-commons-pool2",
+ "apache-commons-validator",
+ "apache-commons-vfs2",
+ "apache-parent",
+ "args4j",
+ "atinject",
+ "base64coder",
+ "bcel",
+ "bea-stax",
+ "beust-jcommander",
+ "bsf",
+ "byaccj",
+ "cal10n",
+ "cdparanoia",
+ "cglib",
+ "cni",
+ "containerized-data-importer",
+ "cpulimit",
+ "cri-o",
+ "ecj",
+ "fillup",
+ "flux",
+ "gd",
+ "geronimo-specs",
+ "glassfish-annotation-api",
+ "gnu-getopt",
+ "gnu-regexp",
+ "golang-packaging",
+ "guava",
+ "guava20",
+ "hamcrest",
+ "hawtjni-runtime",
+ "httpcomponents-core",
+ "influx-cli",
+ "influxdb",
+ "isorelax",
+ "jakarta-taglibs-standard",
+ "jansi",
+ "jarjar",
+ "java-cup",
+ "java-cup-bootstrap",
+ "javacc",
+ "javacc-bootstrap",
+ "javassist",
+ "jboss-interceptors-1.2-api",
+ "jdepend",
+ "jflex",
+ "jflex-bootstrap",
+ "jlex",
+ "jline",
+ "jna",
+ "jsch",
+ "jsoup",
+ "jsr-305",
+ "jtidy",
+ "junit",
+ "junitperf",
+ "jzlib",
+ "kubevirt",
+ "kured",
+ "libcontainers-common",
+ "libtheora",
+ "libva",
+ "libvdpau",
+ "lynx",
+ "maven-parent",
+ "multus",
+ "objectweb-anttask",
+ "objectweb-asm",
+ "objenesis",
+ "oro",
+ "osgi-annotation",
+ "osgi-compendium",
+ "osgi-core",
+ "patterns-ceph-containers",
+ "plexus-classworlds",
+ "plexus-interpolation",
+ "plexus-pom",
+ "plexus-utils",
+ "proj",
+ "psl-make-dafsa",
+ "publicsuffix",
+ "qdox",
+ "regexp",
+ "relaxngDatatype",
+ "rhino",
+ "ripgrep",
+ "servletapi4",
+ "servletapi5",
+ "shapelib",
+ "slf4j",
+ "trilead-ssh2",
+ "virtiofsd",
+ "xalan-j2",
+ "xbean",
+ "xcursor-themes",
+ "xerces-j2",
+ "xml-commons-apis",
+ "xml-commons-resolver",
+ "xmldb-api",
+ "xmlrpc-c",
+ "xmlunit",
+ "xpp2",
+ "xpp3",
+ "xz-java"
+ ]
+ },
+ "Photon": {
+ "license": "[Photon License](LICENSE-PHOTON.md) and [Photon Notice](NOTICE.APACHE2).
Also see [LICENSE-EXCEPTIONS.PHOTON](LICENSE-EXCEPTIONS.PHOTON).",
+ "specs": [
+ "acl",
+ "alsa-lib",
+ "alsa-utils",
+ "ansible",
+ "apr",
+ "apr-util",
+ "asciidoc",
+ "atftp",
+ "audit",
+ "autoconf",
+ "autoconf-archive",
+ "autofs",
+ "autogen",
+ "automake",
+ "babel",
+ "bash",
+ "bc",
+ "bcc",
+ "bind",
+ "binutils",
+ "bison",
+ "blktrace",
+ "boost",
+ "btrfs-progs",
+ "bubblewrap",
+ "build-essential",
+ "bzip2",
+ "c-ares",
+ "cairo",
+ "cassandra",
+ "cdrkit",
+ "check",
+ "chkconfig",
+ "chrpath",
+ "cifs-utils",
+ "clang",
+ "cloud-init",
+ "cloud-utils-growpart",
+ "cmake",
+ "cni-plugins",
+ "core-packages",
+ "coreutils",
+ "cpio",
+ "cppunit",
+ "cracklib",
+ "crash",
+ "crash-gcore-command",
+ "createrepo_c",
+ "cri-tools",
+ "cronie",
+ "curl",
+ "cyrus-sasl",
+ "cyrus-sasl-bootstrap",
+ "dbus",
+ "dbus-glib",
+ "dejagnu",
+ "device-mapper-multipath",
+ "dhcp",
+ "dialog",
+ "diffutils",
+ "dkms",
+ "dmidecode",
+ "dnsmasq",
+ "docbook-dtd-xml",
+ "docbook-style-xsl",
+ "dosfstools",
+ "dracut",
+ "dstat",
+ "e2fsprogs",
+ "ed",
+ "efibootmgr",
+ "efivar",
+ "elfutils",
+ "emacs",
+ "erlang",
+ "etcd",
+ "ethtool",
+ "expat",
+ "expect",
+ "fcgi",
+ "file",
+ "filesystem",
+ "findutils",
+ "flex",
+ "fontconfig",
+ "fping",
+ "freetype",
+ "fuse",
+ "gawk",
+ "gc",
+ "gcc",
+ "gdb",
+ "gdbm",
+ "gettext",
+ "git",
+ "git-lfs",
+ "glib",
+ "glib-networking",
+ "glibc",
+ "glibmm",
+ "glide",
+ "gmp",
+ "gnome-common",
+ "gnupg2",
+ "gnuplot",
+ "gnutls",
+ "gobject-introspection",
+ "golang",
+ "gperf",
+ "gperftools",
+ "gpgme",
+ "gptfdisk",
+ "grep",
+ "groff",
+ "grub2",
+ "gtest",
+ "gtk-doc",
+ "guile",
+ "gzip",
+ "haproxy",
+ "harfbuzz",
+ "haveged",
+ "hdparm",
+ "http-parser",
+ "httpd",
+ "i2c-tools",
+ "iana-etc",
+ "icu",
+ "initramfs",
+ "initscripts",
+ "inotify-tools",
+ "intltool",
+ "iotop",
+ "iperf3",
+ "iproute",
+ "ipset",
+ "iptables",
+ "iputils",
+ "ipvsadm",
+ "ipxe",
+ "irqbalance",
+ "itstool",
+ "jansson",
+ "jq",
+ "json-c",
+ "json-glib",
+ "kbd",
+ "keepalived",
+ "kernel",
+ "kernel-headers",
+ "kernel-mshv",
+ "kernel-rt",
+ "kernel-uvm",
+ "keyutils",
+ "kmod",
+ "krb5",
+ "less",
+ "libaio",
+ "libarchive",
+ "libassuan",
+ "libatomic_ops",
+ "libcap",
+ "libcap-ng",
+ "libconfig",
+ "libdb",
+ "libdnet",
+ "libedit",
+ "libestr",
+ "libevent",
+ "libfastjson",
+ "libffi",
+ "libgcrypt",
+ "libgpg-error",
+ "libgssglue",
+ "libgudev",
+ "libjpeg-turbo",
+ "libksba",
+ "liblogging",
+ "libmbim",
+ "libmnl",
+ "libmodulemd",
+ "libmpc",
+ "libmspack",
+ "libndp",
+ "libnetfilter_conntrack",
+ "libnetfilter_cthelper",
+ "libnetfilter_cttimeout",
+ "libnetfilter_queue",
+ "libnfnetlink",
+ "libnftnl",
+ "libnl3",
+ "libnsl2",
+ "libpcap",
+ "libpipeline",
+ "libpng",
+ "libpsl",
+ "libqmi",
+ "librelp",
+ "librepo",
+ "librsync",
+ "libseccomp",
+ "libselinux",
+ "libsepol",
+ "libserf",
+ "libsigc++30",
+ "libsolv",
+ "libsoup",
+ "libssh2",
+ "libtalloc",
+ "libtar",
+ "libtasn1",
+ "libtiff",
+ "libtirpc",
+ "libtool",
+ "libunistring",
+ "libunwind",
+ "libusb",
+ "libvirt",
+ "libwebp",
+ "libxml2",
+ "libxslt",
+ "libyaml",
+ "linux-firmware",
+ "lldb",
+ "lldpad",
+ "llvm",
+ "lm-sensors",
+ "lmdb",
+ "log4cpp",
+ "logrotate",
+ "lshw",
+ "lsof",
+ "lsscsi",
+ "ltrace",
+ "lttng-tools",
+ "lttng-ust",
+ "lvm2",
+ "lz4",
+ "lzo",
+ "m2crypto",
+ "m4",
+ "make",
+ "man-db",
+ "man-pages",
+ "mariadb",
+ "maven",
+ "mc",
+ "mercurial",
+ "meson",
+ "mlocate",
+ "ModemManager",
+ "mpfr",
+ "msr-tools",
+ "mysql",
+ "nano",
+ "nasm",
+ "ncurses",
+ "ndctl",
+ "net-snmp",
+ "net-tools",
+ "nettle",
+ "newt",
+ "nfs-utils",
+ "nghttp2",
+ "nginx",
+ "ninja-build",
+ "nodejs",
+ "npth",
+ "nspr",
+ "nss",
+ "nss-altfiles",
+ "ntp",
+ "numactl",
+ "nvme-cli",
+ "oniguruma",
+ "OpenIPMI",
+ "openldap",
+ "openscap",
+ "openssh",
+ "openvswitch",
+ "ostree",
+ "pam",
+ "pango",
+ "parted",
+ "patch",
+ "pciutils",
+ "perl-Canary-Stability",
+ "perl-CGI",
+ "perl-common-sense",
+ "perl-Crypt-SSLeay",
+ "perl-DBD-SQLite",
+ "perl-DBI",
+ "perl-DBIx-Simple",
+ "perl-Exporter-Tiny",
+ "perl-File-HomeDir",
+ "perl-File-Which",
+ "perl-IO-Socket-SSL",
+ "perl-JSON-Any",
+ "perl-JSON-XS",
+ "perl-libintl-perl",
+ "perl-List-MoreUtils",
+ "perl-Module-Build",
+ "perl-Module-Install",
+ "perl-Module-ScanDeps",
+ "perl-Net-SSLeay",
+ "perl-NetAddr-IP",
+ "perl-Object-Accessor",
+ "perl-Path-Class",
+ "perl-Try-Tiny",
+ "perl-Types-Serialiser",
+ "perl-WWW-Curl",
+ "perl-XML-Parser",
+ "perl-YAML",
+ "perl-YAML-Tiny",
+ "pgbouncer",
+ "pinentry",
+ "polkit",
+ "popt",
+ "postgresql",
+ "procps-ng",
+ "protobuf",
+ "protobuf-c",
+ "psmisc",
+ "pth",
+ "pyasn1-modules",
+ "pyOpenSSL",
+ "pyparsing",
+ "pytest",
+ "python-appdirs",
+ "python-asn1crypto",
+ "python-atomicwrites",
+ "python-attrs",
+ "python-bcrypt",
+ "python-certifi",
+ "python-cffi",
+ "python-chardet",
+ "python-configobj",
+ "python-constantly",
+ "python-coverage",
+ "python-cryptography",
+ "python-daemon",
+ "python-dateutil",
+ "python-defusedxml",
+ "python-distro",
+ "python-docopt",
+ "python-docutils",
+ "python-ecdsa",
+ "python-gevent",
+ "python-hyperlink",
+ "python-hypothesis",
+ "python-idna",
+ "python-imagesize",
+ "python-incremental",
+ "python-iniparse",
+ "python-ipaddr",
+ "python-jinja2",
+ "python-jmespath",
+ "python-jsonpatch",
+ "python-jsonpointer",
+ "python-jsonschema",
+ "python-lockfile",
+ "python-lxml",
+ "python-mako",
+ "python-markupsafe",
+ "python-mistune",
+ "python-msgpack",
+ "python-netaddr",
+ "python-netifaces",
+ "python-ntplib",
+ "python-oauthlib",
+ "python-packaging",
+ "python-pam",
+ "python-pbr",
+ "python-ply",
+ "python-prettytable",
+ "python-psutil",
+ "python-psycopg2",
+ "python-py",
+ "python-pyasn1",
+ "python-pycodestyle",
+ "python-pycparser",
+ "python-pycurl",
+ "python-pygments",
+ "python-pynacl",
+ "python-requests",
+ "python-setuptools_scm",
+ "python-simplejson",
+ "python-six",
+ "python-snowballstemmer",
+ "python-sphinx-theme-alabaster",
+ "python-twisted",
+ "python-urllib3",
+ "python-vcversioner",
+ "python-virtualenv",
+ "python-wcwidth",
+ "python-webob",
+ "python-websocket-client",
+ "python-werkzeug",
+ "python-zope-interface",
+ "python3",
+ "pytz",
+ "PyYAML",
+ "rapidjson",
+ "readline",
+ "rng-tools",
+ "rpcbind",
+ "rpcsvc-proto",
+ "rpm",
+ "rpm-ostree",
+ "rrdtool",
+ "rsync",
+ "rsyslog",
+ "ruby",
+ "rust",
+ "scons",
+ "sed",
+ "sg3_utils",
+ "shadow-utils",
+ "slang",
+ "snappy",
+ "socat",
+ "sqlite",
+ "sshpass",
+ "strace",
+ "strongswan",
+ "subversion",
+ "sudo",
+ "swig",
+ "syslinux",
+ "syslog-ng",
+ "sysstat",
+ "systemd-bootstrap",
+ "systemtap",
+ "tar",
+ "tboot",
+ "tcl",
+ "tcpdump",
+ "tcsh",
+ "tdnf",
+ "telegraf",
+ "texinfo",
+ "tmux",
+ "tpm2-abrmd",
+ "tpm2-pkcs11",
+ "tpm2-pytss",
+ "tpm2-tools",
+ "tpm2-tss",
+ "traceroute",
+ "tree",
+ "tzdata",
+ "unbound",
+ "unixODBC",
+ "unzip",
+ "usbutils",
+ "userspace-rcu",
+ "utf8proc",
+ "util-linux",
+ "valgrind",
+ "vim",
+ "vsftpd",
+ "WALinuxAgent",
+ "which",
+ "wpa_supplicant",
+ "xfsprogs",
+ "xinetd",
+ "xmlsec1",
+ "xmlto",
+ "xz",
+ "zchunk",
+ "zeromq",
+ "zip",
+ "zlib",
+ "zsh"
+ ]
+ },
+ "RPM software management source": {
+ "license": "[GPLv2+ License](https://github.com/rpm-software-management/dnf5/blob/main/COPYING.md)",
+ "specs": [
+ "dnf5"
+ ]
+ },
+ "Source project": {
+ "license": "Same as the source project.",
+ "specs": [
+ "python-nocaselist"
+ ]
+ },
+ "Sysbench source": {
+ "license": "[GPLv2+ License](https://github.com/akopytov/sysbench/blob/master/COPYING)",
+ "specs": [
+ "sysbench"
+ ]
+ }
+ }
+}
diff --git a/SPECS-EXTENDED/annobin/annobin.signatures.json b/SPECS-EXTENDED/annobin/annobin.signatures.json
deleted file mode 100644
index 9cc241912eb..00000000000
--- a/SPECS-EXTENDED/annobin/annobin.signatures.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Signatures": {
- "annobin-9.27.tar.xz": "1d94816974d265f3f3ccfa03c211bfdab40119392f2e217f0f403f683f027351"
- }
-}
diff --git a/SPECS-EXTENDED/ocaml-parsexp/ocaml-parsexp.signatures.json b/SPECS-EXTENDED/ocaml-parsexp/ocaml-parsexp.signatures.json
deleted file mode 100644
index c6fe9dbacfe..00000000000
--- a/SPECS-EXTENDED/ocaml-parsexp/ocaml-parsexp.signatures.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Signatures": {
- "parsexp-0.15.0.tar.gz": "0be4737dcc3fb459d5eabfa436330de9945e5c1dcb5a101c51415e17c7aa1fb1"
- }
-}
diff --git a/SPECS-EXTENDED/ocaml-sexplib/ocaml-sexplib.signatures.json b/SPECS-EXTENDED/ocaml-sexplib/ocaml-sexplib.signatures.json
deleted file mode 100644
index 09adbcf5911..00000000000
--- a/SPECS-EXTENDED/ocaml-sexplib/ocaml-sexplib.signatures.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Signatures": {
- "sexplib-0.15.0.tar.gz": "4a1e558b71e327784081d6e68a21577e3089a16740a1c8077b2b2129549f5b0c"
- }
-}
diff --git a/SPECS/annobin/annobin.signatures.json b/SPECS/annobin/annobin.signatures.json
new file mode 100644
index 00000000000..409020db434
--- /dev/null
+++ b/SPECS/annobin/annobin.signatures.json
@@ -0,0 +1,5 @@
+{
+ "Signatures": {
+ "annobin-12.49.tar.xz": "991660e75fa3314537cc3f5d4653265b60e46f2015dce026eacaa57878cbfbab"
+ }
+}
diff --git a/SPECS-EXTENDED/annobin/annobin.spec b/SPECS/annobin/annobin.spec
similarity index 74%
rename from SPECS-EXTENDED/annobin/annobin.spec
rename to SPECS/annobin/annobin.spec
index 1f9e27acef5..0b5ae36b0db 100644
--- a/SPECS-EXTENDED/annobin/annobin.spec
+++ b/SPECS/annobin/annobin.spec
@@ -1,62 +1,129 @@
-Vendor: Microsoft Corporation
-Distribution: Azure Linux
-
-Name: annobin
-Summary: Binary annotation plugin for GCC
-Version: 9.27
-Release: 4%{?dist}
-License: GPLv3+
-URL: https://fedoraproject.org/wiki/Toolchain/Watermark
# Maintainer: nickc@redhat.com
-
-
-# # Do not build the annobin plugin with annotation enabled.
-# # This is because if we are bootstrapping a new build environment we can have
-# # a new version of gcc installed, but without a new of annobin installed.
-# # (i.e. we are building the new version of annobin to go with the new version
-# # of gcc). If the *old* annobin plugin is used whilst building this new
-# # version, the old plugin will complain that version of gcc for which it
-# # was built is different from the version of gcc that is now being used, and
-# # then it will abort.
-#
-# Suppress this for BZ 1630550.
-# The problem should now only arise when rebasing to a new major version
-# of gcc, in which case the undefine below can be temporarily reinstated.
+# Web Page: https://sourceware.org/annobin/
+# Watermark Protocol: https://fedoraproject.org/wiki/Toolchain/Watermark
+#---------------------------------------------------------------------------------
+# Set this to zero to disable the requirement for a specific version of gcc.
+# This should only be needed if there is some kind of problem with the version
+# checking logic or when building on RHEL-7 or earlier.
#
-# %%undefine _annotated_build
+# Update: now that we have gcc version checking support in redhat-rpm-config
+# there is no longer a great need for a hard gcc version check here. Not
+# enabling this check greatly simplifies the process of installing a new major
+# version of gcc into the buildroot.
+%global with_hard_gcc_version_requirement 0
+#---------------------------------------------------------------------------------
+%global annobin_sources annobin-%{version}.tar.xz
+# For the latest sources use: git clone git://sourceware.org/git/annobin.git
+# This is where a copy of the sources will be installed.
+%global annobin_source_dir %{_usrsrc}/annobin
+Summary: Binary annotation plugin for GCC
+Name: annobin
+Version: 12.49
+Release: 1%{?dist}
+License: GPL-3.0-or-later AND LGPL-2.0-or-later AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (LGPL-2.0-or-later WITH GCC-exception-2.0) AND GFDL-1.3-or-later
+Vendor: Microsoft Corporation
+Distribution: Azure Linux
+URL: https://sourceware.org/annobin/
+Source: https://nickc.fedorapeople.org/%{annobin_sources}
+Requires: %{name}-plugin-clang
+# Insert patches here, if needed. Eg:
+# Patch01: annobin-plugin-default-string-notes.patch
+#---------------------------------------------------------------------------------
+# Make sure that the necessary sub-packages are built.
+Requires: %{name}-plugin-gcc
+Requires: %{name}-plugin-llvm
+#---------------------------------------------------------------------------------
-# Use "--without tests" to disable the testsuite. The default is to run them.
-%bcond_without tests
+%description
+This package contains the tools needed to annotate binary files created by
+compilers, and also the tools needed to examine those annotations.
-# Use "--without annocheck" to disable the installation of the annocheck program.
-%bcond_without annocheck
+One of the tools is a plugin for GCC that records information about the
+security options that were in effect when the binary was compiled.
-# Use "--with debuginfod" to force support for debuginfod to be compiled into
-# the annocheck program. By default the configure script will check for
-# availablilty at build time, but this might not match the run time situation.
-%bcond_with debuginfod
+Note - the plugin is automatically enabled in gcc builds via flags
+provided by the redhat-rpm-macros package.
-# Set this to zero to disable the requirement for a specific version of gcc.
-# This should only be needed if there is some kind of problem with the version
-# checking logic or when building on RHEL-7 or earlier.
-%global with_hard_gcc_version_requirement 1
+One of the tools is a plugin for Clang that records information about the
+security options that were in effect when the binary was compiled.
+
+One of the tools is a plugin for LLVM that records information about the
+security options that were in effect when the binary was compiled.
+
+One of the tools is a security checker which analyses the notes present in
+annotated files and reports on any missing security options.
+
+#---------------------------------------------------------------------------
+
+# Now that we have sub-packages for all of the plugins and for annocheck,
+# there are no executables left to go into the "annobin" rpm. But top-level
+# packages cannot have "BuildArch: noarch" if sub-packages do have
+# architecture requirements, and rpmlint generates an error if an
+# architecture specific rpm does not contain any binaries. So instead all of
+# the documentation has been moved into an architecture neutral sub-package,
+# and there no longer is a top level annobin rpm at all.
+
+%package docs
+Summary: Documentation and shell scripts for use with annobin
+BuildRequires: gawk
+BuildRequires: make
+# The documentation uses pod2man...
+BuildRequires: perl-interpreter
+BuildRequires: perl-podlators
+BuildRequires: sharutils
+BuildArch: noarch
+
+%description docs
+Provides the documentation files and example shell scripts for use with annobin.
+
+#----------------------------------------------------------------------------
+%package tests
+Summary: Test scripts and binaries for checking the behaviour and output of the annobin plugin
+BuildRequires: elfutils-devel
+BuildRequires: make
+BuildRequires: sharutils
+Requires: %{name}-docs = %{version}-%{release}
-# Enable this if it is necessary to build annobin without using annobin.
-# This is useful for example if the annobin plugin fails because of a change
-# in the size of gcc's global_options structure. In order to rebuild annobin
-# against the changed gcc it is necessary to disable annobin as otherwise
-# the configuration step of annobin's build will fail.
-%undefine _annotated_build
+%description tests
+Provides a means to test the generation of annotated binaries and the parsing
+of the resulting files.
-#---------------------------------------------------------------------------------
-Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz
-# For the latest sources use: git clone git://sourceware.org/git/annobin.git
+#----------------------------------------------------------------------------
-# Insert patches here, if needed.
-# Patch01: annobin-xxx.patch
+%package annocheck
+Summary: A tool for checking the security hardening status of binaries
+BuildRequires: elfutils
+BuildRequires: elfutils-devel
+BuildRequires: elfutils-libelf-devel
+BuildRequires: gcc
+BuildRequires: make
+BuildRequires: rpm-devel
+Requires: %{name}-docs = %{version}-%{release}
+Requires: cpio
+Requires: rpm
-#---------------------------------------------------------------------------------
+%description annocheck
+Installs the annocheck program which uses the notes generated by annobin to
+check that the specified files were compiled with the correct security
+hardening options.
+%package libannocheck
+Summary: A library for checking the security hardening status of binaries
+BuildRequires: elfutils
+BuildRequires: elfutils-devel
+BuildRequires: elfutils-libelf-devel
+BuildRequires: gcc
+BuildRequires: make
+BuildRequires: rpm-devel
+Requires: %{name}-docs = %{version}-%{release}
+
+%description libannocheck
+Installs the libannocheck library which uses the notes generated by the
+annobin plugins to check that the specified files were compiled with the
+correct security hardening options.
+
+#----------------------------------------------------------------------------
+%package plugin-gcc
# [Stolen from gcc-python-plugin]
# GCC will only load plugins that were built against exactly that build of GCC
# We thus need to embed the exact GCC version as a requirement within the
@@ -72,87 +139,80 @@ Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz
#
# So we instead query the version from gcc's output.
#
-# gcc.spec has:
-# Version: %%{gcc_version}
-# Release: %%{gcc_release}%%{?dist}
-# ...snip...
-# echo 'Red Hat %%{version}-%%{gcc_release}' > gcc/DEV-PHASE
-#
# So, given this output:
#
-# $ gcc --version
-# gcc (GCC) 9.1.0
-# Copyright (C) 2011 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions. There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# gcc (GCC) 13.2.0"
+# Copyright (C) 2023 Free Software Foundation, Inc."
+# This is free software; see the source for copying conditions. There is NO"
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
-# we can scrape out the "9.1.0" from the version line.
+# we can scrape out the "13.2.0" from the version line.
#
# The following implements the above:
-
-%global gcc_vr %(gcc --version | head -n 1 | cut -f3 -d" ")
-
+%global gcc_vr %(gcc --version | head -n 1 | sed -e 's|.*(GCC)||g')
# We need the major version of gcc.
%global gcc_major %(echo "%{gcc_vr}" | cut -f1 -d".")
%global gcc_next %(v="%{gcc_major}"; echo $((++v)))
-
# Needed when building the srpm.
-%if 0%{?gcc_major}
-%else
+%if "0%{?gcc_major}" == "0"
%global gcc_major 0
%endif
-
-# This is a gcc plugin, hence gcc is required.
+# Information about the gcc plugin is recorded in this file.
+%global aver annobin-plugin-version-info
+Summary: annobin gcc plugin
+BuildRequires: gcc-c++
+BuildRequires: gcc-plugin-devel
+Requires: %{name}-docs = %{version}-%{release}
+Conflicts: %{name} <= 9.60-1
+# For a gcc plugin gcc is required.
%if %{with_hard_gcc_version_requirement}
# BZ 1607430 - There is an exact requirement on the major version of gcc.
-Requires: (gcc >= %{gcc_major} with gcc < %{gcc_next})
+Requires: (gcc >= %{gcc_major} with gcc < %{gcc_next})
%else
-Requires: gcc
+Requires: gcc
%endif
-BuildRequires: gcc gcc-plugin-devel gcc-c++
-
-%description
-Provides a plugin for GCC that records extra information in the files
-that it compiles.
-
-Note - the plugin is automatically enabled in gcc builds via flags
-provided by the redhat-rpm-macros package.
+%description plugin-gcc
+Installs an annobin plugin that can be used by gcc.
#---------------------------------------------------------------------------------
-%if %{with tests}
-
-%package tests
-Summary: Test scripts and binaries for checking the behaviour and output of the annobin plugin
-
-%description tests
-Provides a means to test the generation of annotated binaries and the parsing
-of the resulting files.
-
-%endif
+%package plugin-llvm
+Summary: annobin llvm plugin
+BuildRequires: clang
+BuildRequires: clang-devel
+BuildRequires: compiler-rt
+BuildRequires: llvm
+BuildRequires: llvm-devel
+Requires: %{name}-docs = %{version}-%{release}
+Requires: llvm
+Conflicts: %{name} <= 9.60-1
+
+%description plugin-llvm
+Installs an annobin plugin that can be used by LLVM tools.
#---------------------------------------------------------------------------------
-%if %{with annocheck}
-%package annocheck
-Summary: A tool for checking the security hardening status of binaries
+%package plugin-clang
+Summary: annobin clang plugin
+BuildRequires: clang
+BuildRequires: clang-devel
+BuildRequires: compiler-rt
+BuildRequires: llvm
+BuildRequires: llvm-devel
+Requires: %{name}-docs = %{version}-%{release}
+Requires: llvm
+Conflicts: %{name} <= 9.60-1
-BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel
-%if %{with debuginfod}
-BuildRequires: elfutils-debuginfod-client-devel
-%endif
-
-%description annocheck
-Installs the annocheck program which uses the notes generated by annobin to
-check that the specified files were compiled with the correct security
-hardening options.
-
-%endif
+%description plugin-clang
+Installs an annobin plugin that can be used by Clang.
#---------------------------------------------------------------------------------
-%global ANNOBIN_GCC_PLUGIN_DIR %(gcc --print-file-name=plugin)
+# Decide where the plugins will live. Change if necessary.
+%global ANNOBIN_GCC_PLUGIN_DIR %(gcc --print-file-name=plugin)
+%{!?llvm_plugin_dir:%global llvm_plugin_dir %{_libdir}/llvm/plugins}
+%{!?clang_plugin_dir:%global clang_plugin_dir %{_libdir}/clang/plugins}
#---------------------------------------------------------------------------------
%prep
@@ -176,79 +236,128 @@ touch doc/annobin.info
#---------------------------------------------------------------------------------
%build
+CONFIG_ARGS="$CONFIG_ARGS --quiet --with-debuginfod --with-clang --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR} --with-llvm"
-CONFIG_ARGS=
+export CFLAGS="$CFLAGS -DAARCH64_BRANCH_PROTECTION_SUPPORTED=1"
-%if %{with debuginfod}
-CONFIG_ARGS="$CONFIG_ARGS --with-debuginfod"
-%else
-CONFIG_ARGS="$CONFIG_ARGS --without-debuginfod"
+%{set_build_flags}
+
+export CFLAGS="$CFLAGS %{optflags} %{build_cflags}"
+export LDFLAGS="$LDFLAGS %{build_ldflags}"
+
+export PLUGIN_FORTIFY_OPTION="-D_FORTIFY_SOURCE=3"
+
+# Set target-specific security options to be used when building the
+# Clang and LLVM plugins. FIXME: There should be a better way to do
+# this.
+%ifarch %{ix86} x86_64
+export CLANG_TARGET_OPTIONS="-fcf-protection"
%endif
-%if %{without tests}
-CONFIG_ARGS="$CONFIG_ARGS --without-test"
+%ifarch aarch64
+export CLANG_TARGET_OPTIONS="-mbranch-protection=standard"
%endif
-%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR} ${CONFIG_ARGS} || cat config.log
+CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CXXFLAGS="$CFLAGS" %configure ${CONFIG_ARGS} || cat config.log
%make_build
-# Rebuild the plugin, this time using the plugin itself! This
+# Rebuild the plugin(s), this time using the plugin itself! This
# ensures that the plugin works, and that it contains annotations
-# of its own. This could mean that we end up with a plugin with
-# double annotations in it. (If the build system enables annotations
-# for plugins by default). I have not tested this yet, but I think
-# that it should be OK.
+# of its own.
+
cp gcc-plugin/.libs/annobin.so.0.0.0 %{_tmppath}/tmp_annobin.so
make -C gcc-plugin clean
-BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so -fplugin-arg-tmp_annobin-rename"
-# If building on RHEL7, enable the next option as the .attach_to_group assembler pseudo op is not available in the assembler.
+BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so"
+
+OPTS="$(rpm --undefine=_annotated_build --eval '%{build_cflags} %{build_ldflags}')"
+
+# If building on systems with an assembler that does not support the
+# .attach_to_group pseudo op (eg RHEL-7) then enable the next line.
# BUILD_FLAGS="$BUILD_FLAGS -fplugin-arg-tmp_annobin-no-attach"
-make -C gcc-plugin CXXFLAGS="%{optflags} $BUILD_FLAGS"
+
+make -C gcc-plugin CXXFLAGS="$OPTS $BUILD_FLAGS"
rm %{_tmppath}/tmp_annobin.so
+cp clang-plugin/annobin-for-clang.so %{_tmppath}/tmp_annobin.so
+# To enable verbose more in the plugin append the following: ANNOBIN="verbose"
+make -C clang-plugin clean all CLANG_TARGET_OPTIONS="$CLANG_TARGET_OPTIONS $BUILD_FLAGS"
+
+cp llvm-plugin/annobin-for-llvm.so %{_tmppath}/tmp_annobin.so
+# To enable verbose more in the plugin append the following: ANNOBIN_VERBOSE="true"
+make -C llvm-plugin clean all CLANG_TARGET_OPTIONS="$CLANG_TARGET_OPTIONS $BUILD_FLAGS"
+
#---------------------------------------------------------------------------------
%install
-%make_install
-%{__rm} -f %{buildroot}%{_infodir}/dir
+
+# PLUGIN_INSTALL_DIR is used by the Clang and LLVM makefiles...
+%make_install PLUGIN_INSTALL_DIR=%{buildroot}/%{llvm_plugin_dir}
+
+# Move the clang plugin to a seperate directory.
+mkdir -p %{buildroot}/%{clang_plugin_dir}
+mv %{buildroot}/%{llvm_plugin_dir}/annobin-for-clang.so %{buildroot}/%{clang_plugin_dir}
+
+# Record the version of gcc that built this plugin.
+# Note - we cannot just store %%{gcc_vr} as sometimes the gcc rpm version changes
+# without the NVR being altered. See BZ #2030671 for more discussion on this.
+mkdir -p %{buildroot}/%{ANNOBIN_GCC_PLUGIN_DIR}
+echo "%{gcc_vr}" > %{buildroot}/%{ANNOBIN_GCC_PLUGIN_DIR}/%{aver}
+
+rm -f %{buildroot}%{_infodir}/dir
#---------------------------------------------------------------------------------
-%if %{with tests}
%check
-# Change the following line to "make check || :" on RHEL7 or if you need to see the
-# test suite logs in order to diagnose a test failure.
-make check
-if [ -f tests/test-suite.log ]; then
- cat tests/test-suite.log
-fi
-%endif
+make check || ( cat tests/test-suite.log; false )
#---------------------------------------------------------------------------------
-%files
-%{ANNOBIN_GCC_PLUGIN_DIR}
+%files docs
%license COPYING3 LICENSE
-%exclude %{_datadir}/doc/annobin-plugin/COPYING3
-%exclude %{_datadir}/doc/annobin-plugin/LICENSE
-%doc %{_datadir}/doc/annobin-plugin/annotation.proposal.txt
+%exclude %{_docdir}/annobin-plugin/COPYING3
+%exclude %{_docdir}/annobin-plugin/LICENSE
+%doc %{_docdir}/annobin-plugin/annotation.proposal.txt
%{_infodir}/annobin.info*
%{_mandir}/man1/annobin.1*
-%{_mandir}/man1/built-by.1*
-%{_mandir}/man1/check-abi.1*
-%{_mandir}/man1/hardened.1*
-%{_mandir}/man1/run-on-binaries-in.1*
+%exclude %{_mandir}/man1/built-by.1*
+%exclude %{_mandir}/man1/check-abi.1*
+%exclude %{_mandir}/man1/hardened.1*
+%exclude %{_mandir}/man1/run-on-binaries-in.1*
+
+%files plugin-llvm
+%dir %{llvm_plugin_dir}
+%{llvm_plugin_dir}/annobin-for-llvm.so
+
+%files plugin-clang
+%dir %{clang_plugin_dir}
+%{clang_plugin_dir}/annobin-for-clang.so
+
+%files plugin-gcc
+%dir %{ANNOBIN_GCC_PLUGIN_DIR}
+%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so
+%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0
+%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0.0.0
+%{ANNOBIN_GCC_PLUGIN_DIR}/%{aver}
-%if %{with annocheck}
%files annocheck
%{_bindir}/annocheck
%{_mandir}/man1/annocheck.1*
-%endif
+
+%files libannocheck
+%{_includedir}/libannocheck.h
+%{_libdir}/libannocheck.*
+%{_libdir}/pkgconfig/libannocheck.pc
#---------------------------------------------------------------------------------
%changelog
+* Fri Mar 08 2024 Mykhailo Bykhovtsev - 12.40-1
+- Promoted package from extended to core
+- Upgraded to 12.49
+- Imported and adopted the spec from Fedora 41 (License: MIT)
+- License verified
+
* Fri Oct 15 2021 Pawel Winogrodzki - 9.27-4
- Initial CBL-Mariner import from Fedora 32 (license: MIT).
diff --git a/SPECS/azurelinux-rpm-macros/azurelinux-rpm-macros.signatures.json b/SPECS/azurelinux-rpm-macros/azurelinux-rpm-macros.signatures.json
index 39f7255b8ca..8dc5fbed370 100644
--- a/SPECS/azurelinux-rpm-macros/azurelinux-rpm-macros.signatures.json
+++ b/SPECS/azurelinux-rpm-macros/azurelinux-rpm-macros.signatures.json
@@ -20,7 +20,7 @@
"macros.forge": "52cdffd48217cafe33afe47c625cd6aac6460848cd76de66fe61031c26beeaf4",
"macros.mono-srpm": "a9201ae36fc482e966134e38f42412378e955faf296b214cb6dd63981af8bc49",
"macros.nodejs-srpm": "b2515cc7fad3f14849cff8593b10543a3f73edccff4c3c6d0d2764dae19c38e8",
- "macros.ocaml-srpm": "cd34e1d89cf45b1a76a8803a7fe3aefa6e5e6380e983a85d8dae4912ba360b3f",
+ "macros.ocaml-srpm": "c35c6db7ede8ea534212329d010920646f80368e1fbd0b9025e48ed0a85a09ce",
"macros.openblas-srpm": "bd46ab2c99aa504d3fb09de1f071f0e19a9b2605772c1a738a32cfb0129d33b8",
"macros.perl-srpm": "27f09c386944fc7478cdde55168bbc720d03ecd11ec60ae1133a42db6432e7f7",
"macros.pybytecompile": "b07fbaa0f534bfee9706e343f4c1892d6903127e18f7561d0ad8445674658d26",
diff --git a/SPECS/azurelinux-rpm-macros/azurelinux-rpm-macros.spec b/SPECS/azurelinux-rpm-macros/azurelinux-rpm-macros.spec
index 75256108e65..eb29cefc97b 100644
--- a/SPECS/azurelinux-rpm-macros/azurelinux-rpm-macros.spec
+++ b/SPECS/azurelinux-rpm-macros/azurelinux-rpm-macros.spec
@@ -7,7 +7,7 @@
Summary: Azure Linux specific rpm macro files
Name: azurelinux-rpm-macros
Version: %{azl}.0
-Release: 4%{?dist}
+Release: 5%{?dist}
License: GPL+ AND MIT
Vendor: Microsoft Corporation
Distribution: Azure Linux
@@ -21,37 +21,35 @@ Source5: macros.check
Source6: macros.openblas-srpm
Source7: macros.nodejs-srpm
Source8: macros.mono-srpm
-Source9: macros.ocaml-srpm
-Source10: macros.perl-srpm
-Source11: gpgverify
-Source12: macros.forge
-Source13: common.lua
-Source14: forge.lua
+Source9: macros.perl-srpm
+Source10: gpgverify
+Source11: macros.forge
+Source12: common.lua
+Source13: forge.lua
# macros.rust-srpm is taken from https://pagure.io/fedora-rust/rust2rpm
-Source15: macros.rust-srpm
+Source14: macros.rust-srpm
# macros.fonts is taken from the "fontpackages-devel" package.
-Source16: macros.fonts
-Source17: macros.suse
-Source18: gen-ld-script.sh
-Source19: generate-package-note.py
-Source20: verify-package-notes.sh
+Source15: macros.fonts
+Source16: macros.suse
+Source17: gen-ld-script.sh
+Source18: generate-package-note.py
+Source19: verify-package-notes.sh
### The following files should eventually move to python-rpm-macros.spec
-Source21: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/macros.python
-Source22: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/macros.python3
-Source23: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/macros.python-srpm
-Source24: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/brp-python-bytecompile
-Source25: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/macros.pybytecompile
-Source26: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/compileall2.py
-Source27: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/python.lua
-Source28: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/clamp_source_mtime.py
-Source29: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/pathfix.py
-Source30: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/brp-fix-pyc-reproducibility
-Source31: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/brp-python-hardlink
-Source32: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/import_all_modules.py
+Source20: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/macros.python
+Source21: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/macros.python3
+Source22: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/macros.python-srpm
+Source23: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/brp-python-bytecompile
+Source24: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/macros.pybytecompile
+Source25: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/compileall2.py
+Source26: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/python.lua
+Source27: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/clamp_source_mtime.py
+Source28: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/pathfix.py
+Source29: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/brp-fix-pyc-reproducibility
+Source30: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/brp-python-hardlink
+Source31: https://src.fedoraproject.org/rpms/python-rpm-macros/blob/f40/f/import_all_modules.py
###
Provides: redhat-rpm-config
Provides: openblas-srpm-macros
-Provides: ocaml-srpm-macros
Provides: perl-srpm-macros
Provides: python-srpm-macros
Provides: python-rpm-macros
@@ -122,7 +120,6 @@ install -p -m 644 -t %{buildroot}%{rcluadir}/srpm python.lua
%{_rpmconfigdir}/macros.d/macros.openblas-srpm
%{_rpmconfigdir}/macros.d/macros.nodejs-srpm
%{_rpmconfigdir}/macros.d/macros.mono-srpm
-%{_rpmconfigdir}/macros.d/macros.ocaml-srpm
%{_rpmconfigdir}/macros.d/macros.perl-srpm
%{_rpmconfigdir}/macros.d/macros.rust-srpm
%{_rpmconfigdir}/macros.d/macros.fonts
@@ -141,6 +138,9 @@ install -p -m 644 -t %{buildroot}%{rcluadir}/srpm python.lua
%{_rpmconfigdir}/macros.d/macros.check
%changelog
+* Tue May 21 2024 Mykhailo Bykhovtsev - 3.0-5
+- Moved ocaml-srpm-macros into its own package.
+
* Fri May 17 2024 Nicolas Guibourge - 3.0-4
- Move src tarball location to AME
diff --git a/SPECS/azurelinux-rpm-macros/macros.ocaml-srpm b/SPECS/azurelinux-rpm-macros/macros.ocaml-srpm
deleted file mode 100644
index bb1859f372f..00000000000
--- a/SPECS/azurelinux-rpm-macros/macros.ocaml-srpm
+++ /dev/null
@@ -1,15 +0,0 @@
-# Note that OCaml is compiled on all architectures. However
-# on some (rare) architectures, only bytecode compilation is
-# available. Use these macros to find out if native code
-# compilation is available on a particular architecture.
-
-# Architectures that support the OCaml native code compiler.
-%ocaml_native_compiler aarch64 %{arm} %{ix86} ppc ppc64 ppc64le riscv64 s390x sparc sparcv9 x86_64
-
-# Architectures that support native dynamic linking of OCaml code.
-%ocaml_natdynlink aarch64 %{arm} %{ix86} ppc ppc64 ppc64le riscv64 s390x sparc sparcv9 x86_64
-
-# Architectures that support profiling of native code (ocamlopt -p).
-# This was removed in OCaml 4.09.
-# https://github.com/ocaml/ocaml/pull/2314
-%ocaml_native_profiling %{nil}
diff --git a/SPECS/emacs/default.el b/SPECS/emacs/default.el
new file mode 100644
index 00000000000..d7f7f3d016d
--- /dev/null
+++ b/SPECS/emacs/default.el
@@ -0,0 +1,7 @@
+;;; default.el - loaded after ".emacs" on startup
+;;;
+;;; Setting `inhibit-default-init' non-nil in "~/.emacs"
+;;; prevents loading of this file. Also the "-q" option to emacs
+;;; prevents both "~/.emacs" and this file from being loaded at startup.
+
+(setq-default smime-CA-directory "/etc/ssl/certs")
\ No newline at end of file
diff --git a/SPECS/emacs/emacs.signatures.json b/SPECS/emacs/emacs.signatures.json
index 6f4e3a71b4e..0576b75f2f7 100644
--- a/SPECS/emacs/emacs.signatures.json
+++ b/SPECS/emacs/emacs.signatures.json
@@ -1,5 +1,7 @@
{
"Signatures": {
- "emacs-29.3.tar.xz": "c34c05d3ace666ed9c7f7a0faf070fea3217ff1910d004499bd5453233d742a0"
+ "emacs-29.3.tar.xz": "c34c05d3ace666ed9c7f7a0faf070fea3217ff1910d004499bd5453233d742a0",
+ "default.el": "34da95d8d98a45a6277be3f296218fd1ff4761368251d0db9cc2a391b64db27d",
+ "site-start.el": "c2789266d886fe7a7c1caa5a86a917cd38b3b5e729a86672fca610b82c4c0bc3"
}
}
diff --git a/SPECS/emacs/emacs.spec b/SPECS/emacs/emacs.spec
index f111f7bbefa..95fb83f8f9b 100644
--- a/SPECS/emacs/emacs.spec
+++ b/SPECS/emacs/emacs.spec
@@ -1,13 +1,15 @@
Summary: GNU Emacs text editor
Name: emacs
Version: 29.3
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv3+ AND CC0-1.0
Vendor: Microsoft Corporation
Distribution: Azure Linux
Group: Applications/Editors
URL: https://www.gnu.org/software/emacs/
Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
+Source1: site-start.el
+Source2: default.el
BuildRequires: gcc
BuildRequires: glibc-devel
BuildRequires: gnutls-devel
@@ -15,6 +17,9 @@ BuildRequires: ncurses-devel
BuildRequires: systemd-devel
Requires: %{name}-filesystem = %{version}-%{release}
+%define site_lisp %{_datadir}/emacs/site-lisp
+%define site_start_d %{site_lisp}/site-start.d
+
%description
Emacs is a powerful, customizable, self-documenting, modeless text
editor. Emacs contains special code editing features, a scripting
@@ -50,6 +55,16 @@ packages that add functionality to Emacs.
--without-makeinfo
%make_build
+# Create macros.emacs RPM macro file
+cat > macros.emacs << EOF
+%%_emacs_version %{version}
+%%_emacs_ev %{?epoch:%{epoch}:}%{version}
+%%_emacs_evr %{?epoch:%{epoch}:}%{version}-%{release}
+%%_emacs_sitelispdir %{site_lisp}
+%%_emacs_sitestartdir %{site_start_d}
+%%_emacs_bytecompile(W) /usr/bin/emacs -batch --no-init-file --no-site-file --eval '(push nil load-path)' %%{-W:--eval '(setq byte-compile-error-on-warn t)' }-f batch-byte-compile %%*
+EOF
+
%install
%make_install
@@ -62,6 +77,32 @@ rm %{buildroot}%{_datadir}/applications/*.desktop
mkdir -p %{buildroot}%{_datadir}/emacs/site-lisp/site-start.d
+# Install rpm macro definition file
+mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d
+install -p -m 0644 macros.emacs %{buildroot}%{_rpmconfigdir}/macros.d/
+
+mkdir -p %{buildroot}%{site_lisp}
+install -p -m 0644 %SOURCE1 %{buildroot}%{site_lisp}/site-start.el
+install -p -m 0644 %SOURCE2 %{buildroot}%{site_lisp}
+
+# This solves bz#474958, "update-directory-autoloads" now finally
+# works the path is different each version, so we'll generate it here
+echo "(setq source-directory \"%{_datadir}/emacs/%{version}/\")" \
+ >> %{buildroot}%{site_lisp}/site-start.el
+
+#
+# Create file lists
+#
+rm -f *-filelist {common,el}-*-files
+
+( TOPDIR=${PWD}
+ cd %{buildroot}
+
+ find .%{_datadir}/emacs/%{version}/lisp .%{site_lisp} \
+ \( -type f -name '*.elc' -fprint $TOPDIR/common-lisp-none-elc-files \) -o \( -type d -fprintf $TOPDIR/common-lisp-dir-files "%%%%dir %%p\n" \) -o \( -name '*.el.gz' -fprint $TOPDIR/el-bytecomped-files -o -fprint $TOPDIR/common-not-comped-files \)
+
+)
+
%files
%defattr(-,root,root)
%{_bindir}/ebrowse
@@ -77,6 +118,9 @@ mkdir -p %{buildroot}%{_datadir}/emacs/site-lisp/site-start.d
%{_datadir}/emacs/%{version}/site-lisp/subdirs.el
%{_datadir}/emacs/site-lisp/subdirs.el
%{_datadir}/metainfo/emacs.metainfo.xml
+%attr(0644,root,root) %config(noreplace) %{site_lisp}/default.el
+%attr(0644,root,root) %config %{site_lisp}/site-start.el
+%{_rpmconfigdir}/macros.d/macros.emacs
%files filesystem
%dir %{_datadir}/emacs
@@ -84,6 +128,9 @@ mkdir -p %{buildroot}%{_datadir}/emacs/site-lisp/site-start.d
%dir %{_datadir}/emacs/site-lisp/site-start.d
%changelog
+* Wed May 01 2024 Mykhailo Bykhovtsev - 29.3-2
+- Added macros.emacs RPM macro file to be produced and provided by the package
+
* Wed Apr 03 2024 Betty Lakes - 29.3-1
- Upgrade to 29.3
diff --git a/SPECS/emacs/site-start.el b/SPECS/emacs/site-start.el
new file mode 100644
index 00000000000..8a6e36418c6
--- /dev/null
+++ b/SPECS/emacs/site-start.el
@@ -0,0 +1,9 @@
+;;; loaded before user's ".emacs" file and default.el
+
+;; load *.el and *.elc in /usr/share/emacs/site-lisp/site-start.d on startup
+(mapc
+ 'load
+ (delete-dups
+ (mapcar 'file-name-sans-extension
+ (directory-files
+ "/usr/share/emacs/site-lisp/site-start.d" t "\\.elc?\\'"))))
diff --git a/SPECS/graphviz/graphviz.spec b/SPECS/graphviz/graphviz.spec
index d40b88dad97..0695ca27648 100644
--- a/SPECS/graphviz/graphviz.spec
+++ b/SPECS/graphviz/graphviz.spec
@@ -45,7 +45,7 @@
Summary: Graph Visualization Tools
Name: graphviz
Version: 2.42.4
-Release: 10%{?dist}
+Release: 11%{?dist}
License: EPL-1.0
Vendor: Microsoft Corporation
Distribution: Azure Linux
@@ -102,7 +102,7 @@ BuildRequires: DevIL-devel
BuildRequires: R-devel
%endif
%if %{OCAML}
-BuildRequires: ocaml
+BuildRequires: ocaml >= 5.1.1
%endif
%if %{QTAPPS}
BuildRequires: qt-devel
@@ -517,6 +517,9 @@ php --no-php-ini \
%{_mandir}/man3/*.3tcl*
%changelog
+* Wed May 08 2024 Mykhailo Bykhovtsev - 2.42.4-11
+- Rebuild with ocaml 5.1.1
+
* Tue Feb 06 2024 Dan Streetman - 2.42.4-10
- add build dep gc-devel
diff --git a/SPECS/hivex/0001-ruby-Replace-MiniTest-with-Minitest.patch b/SPECS/hivex/0001-ruby-Replace-MiniTest-with-Minitest.patch
new file mode 100644
index 00000000000..dff7d3a6b69
--- /dev/null
+++ b/SPECS/hivex/0001-ruby-Replace-MiniTest-with-Minitest.patch
@@ -0,0 +1,102 @@
+From fbcff7fbd8f96214c7f13f36bd7669a9142824ab Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones"
+Date: Mon, 7 Aug 2023 10:21:54 +0100
+Subject: [PATCH 1/3] ruby: Replace MiniTest with Minitest
+
+Apparently the old MiniTest module is somewhat ancient. Use "new"
+Minitest module instead. This was broken by the following change in
+minitest 5.19:
+
+https://github.com/minitest/minitest/commit/a2c6c18570f6f0a1bf6af70fe3b6d9599a13fdd6
+
+Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2229653
+---
+ ruby/tests/tc_010_load.rb | 2 +-
+ ruby/tests/tc_021_close.rb | 2 +-
+ ruby/tests/tc_120_rlenvalue.rb | 2 +-
+ ruby/tests/tc_130_special.rb | 2 +-
+ ruby/tests/tc_200_write.rb | 2 +-
+ ruby/tests/tc_210_setvalue.rb | 2 +-
+ 6 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/ruby/tests/tc_010_load.rb b/ruby/tests/tc_010_load.rb
+index 76fef60..58fac33 100644
+--- a/ruby/tests/tc_010_load.rb
++++ b/ruby/tests/tc_010_load.rb
+@@ -17,7 +17,7 @@
+
+ require File::join(File::dirname(__FILE__), 'test_helper')
+
+-class TestLoad < MiniTest::Unit::TestCase
++class TestLoad < Minitest::Test
+ def test_load
+ h = Hivex::open("../images/minimal", {})
+ refute_nil (h)
+diff --git a/ruby/tests/tc_021_close.rb b/ruby/tests/tc_021_close.rb
+index 38b88a9..bc8f79d 100644
+--- a/ruby/tests/tc_021_close.rb
++++ b/ruby/tests/tc_021_close.rb
+@@ -17,7 +17,7 @@
+
+ require File::join(File::dirname(__FILE__), 'test_helper')
+
+-class TestClose < MiniTest::Unit::TestCase
++class TestClose < Minitest::Test
+ def test_close
+ h = Hivex::open("../images/minimal", {})
+ refute_nil (h)
+diff --git a/ruby/tests/tc_120_rlenvalue.rb b/ruby/tests/tc_120_rlenvalue.rb
+index 6a2fb72..ee881bb 100644
+--- a/ruby/tests/tc_120_rlenvalue.rb
++++ b/ruby/tests/tc_120_rlenvalue.rb
+@@ -23,7 +23,7 @@
+
+ require File::join(File::dirname(__FILE__), 'test_helper')
+
+-class TestRLenValue < MiniTest::Unit::TestCase
++class TestRLenValue < Minitest::Test
+ def test_RLenValue
+ h = Hivex::open(File::join(ENV['abs_srcdir'], '..', 'images', 'rlenvalue_test_hive'), {})
+ refute_nil(h)
+diff --git a/ruby/tests/tc_130_special.rb b/ruby/tests/tc_130_special.rb
+index 7570824..6179f51 100644
+--- a/ruby/tests/tc_130_special.rb
++++ b/ruby/tests/tc_130_special.rb
+@@ -3,7 +3,7 @@
+
+ require File::join(File::dirname(__FILE__), 'test_helper')
+
+-class TestRLenValue < MiniTest::Unit::TestCase
++class TestRLenValue < Minitest::Test
+ def test_RLenValue
+ h = Hivex::open(File::join(ENV['abs_srcdir'], '..', 'images', 'special'), {})
+ refute_nil(h)
+diff --git a/ruby/tests/tc_200_write.rb b/ruby/tests/tc_200_write.rb
+index 463283e..a713d77 100644
+--- a/ruby/tests/tc_200_write.rb
++++ b/ruby/tests/tc_200_write.rb
+@@ -17,7 +17,7 @@
+
+ require File::join(File::dirname(__FILE__), 'test_helper')
+
+-class TestWrite < MiniTest::Unit::TestCase
++class TestWrite < Minitest::Test
+ def test_write
+ h = Hivex::open("../images/minimal", {:write => 1})
+ refute_nil (h)
+diff --git a/ruby/tests/tc_210_setvalue.rb b/ruby/tests/tc_210_setvalue.rb
+index 736b073..2ffd07b 100644
+--- a/ruby/tests/tc_210_setvalue.rb
++++ b/ruby/tests/tc_210_setvalue.rb
+@@ -17,7 +17,7 @@
+
+ require File::join(File::dirname(__FILE__), 'test_helper')
+
+-class TestSetValue < MiniTest::Unit::TestCase
++class TestSetValue < Minitest::Test
+ def test_set_value
+ h = Hivex::open("../images/minimal", {:write => 1})
+ refute_nil (h)
+--
+2.41.0
+
\ No newline at end of file
diff --git a/SPECS/hivex/0002-ruby-Get-rid-of-old-Test-Unit-compatibility.patch b/SPECS/hivex/0002-ruby-Get-rid-of-old-Test-Unit-compatibility.patch
new file mode 100644
index 00000000000..c8b0ffc9360
--- /dev/null
+++ b/SPECS/hivex/0002-ruby-Get-rid-of-old-Test-Unit-compatibility.patch
@@ -0,0 +1,160 @@
+From 6dbbc474d3df5cdfd21ed5e692b3a58136fffc42 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones"
+Date: Mon, 7 Aug 2023 10:41:26 +0100
+Subject: [PATCH 2/3] ruby: Get rid of old Test::Unit compatibility
+
+Minitest is now required to run the Ruby unit tests.
+
+This compatibility was added back in commit 3f3bc6af07 ("ruby: tests:
+convert from Test::Unit to MiniTest (RHBZ#1090407)", 2014), but is
+broken by the change from MiniTest to Minitest.
+---
+ ruby/Makefile.am | 3 +--
+ ruby/tests/tc_010_load.rb | 3 ++-
+ ruby/tests/tc_021_close.rb | 3 ++-
+ ruby/tests/tc_120_rlenvalue.rb | 3 ++-
+ ruby/tests/tc_130_special.rb | 3 ++-
+ ruby/tests/tc_200_write.rb | 3 ++-
+ ruby/tests/tc_210_setvalue.rb | 3 ++-
+ ruby/tests/test_helper.rb | 31 -------------------------------
+ 8 files changed, 13 insertions(+), 39 deletions(-)
+ delete mode 100644 ruby/tests/test_helper.rb
+
+diff --git a/ruby/Makefile.am b/ruby/Makefile.am
+index 0e9a868..7a5fe42 100644
+--- a/ruby/Makefile.am
++++ b/ruby/Makefile.am
+@@ -23,8 +23,7 @@ EXTRA_DIST = \
+ ext/hivex/_hivex.c \
+ lib/hivex.rb \
+ run-ruby-tests \
+- tests/tc_*.rb \
+- tests/test_helper.rb
++ tests/tc_*.rb
+
+ CLEANFILES = \
+ lib/*~ \
+diff --git a/ruby/tests/tc_010_load.rb b/ruby/tests/tc_010_load.rb
+index 58fac33..8efac36 100644
+--- a/ruby/tests/tc_010_load.rb
++++ b/ruby/tests/tc_010_load.rb
+@@ -15,7 +15,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+-require File::join(File::dirname(__FILE__), 'test_helper')
++require 'minitest/autorun'
++require 'hivex'
+
+ class TestLoad < Minitest::Test
+ def test_load
+diff --git a/ruby/tests/tc_021_close.rb b/ruby/tests/tc_021_close.rb
+index bc8f79d..b3aaa10 100644
+--- a/ruby/tests/tc_021_close.rb
++++ b/ruby/tests/tc_021_close.rb
+@@ -15,7 +15,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+-require File::join(File::dirname(__FILE__), 'test_helper')
++require 'minitest/autorun'
++require 'hivex'
+
+ class TestClose < Minitest::Test
+ def test_close
+diff --git a/ruby/tests/tc_120_rlenvalue.rb b/ruby/tests/tc_120_rlenvalue.rb
+index ee881bb..f40735d 100644
+--- a/ruby/tests/tc_120_rlenvalue.rb
++++ b/ruby/tests/tc_120_rlenvalue.rb
+@@ -21,7 +21,8 @@
+ # length and offset for this value cell should be 37 bytes, position
+ # 8712.
+
+-require File::join(File::dirname(__FILE__), 'test_helper')
++require 'minitest/autorun'
++require 'hivex'
+
+ class TestRLenValue < Minitest::Test
+ def test_RLenValue
+diff --git a/ruby/tests/tc_130_special.rb b/ruby/tests/tc_130_special.rb
+index 6179f51..49a635b 100644
+--- a/ruby/tests/tc_130_special.rb
++++ b/ruby/tests/tc_130_special.rb
+@@ -1,7 +1,8 @@
+ # -*- coding: utf-8 -*-
+ # -*- ruby -*-
+
+-require File::join(File::dirname(__FILE__), 'test_helper')
++require 'minitest/autorun'
++require 'hivex'
+
+ class TestRLenValue < Minitest::Test
+ def test_RLenValue
+diff --git a/ruby/tests/tc_200_write.rb b/ruby/tests/tc_200_write.rb
+index a713d77..4ce0586 100644
+--- a/ruby/tests/tc_200_write.rb
++++ b/ruby/tests/tc_200_write.rb
+@@ -15,7 +15,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+-require File::join(File::dirname(__FILE__), 'test_helper')
++require 'minitest/autorun'
++require 'hivex'
+
+ class TestWrite < Minitest::Test
+ def test_write
+diff --git a/ruby/tests/tc_210_setvalue.rb b/ruby/tests/tc_210_setvalue.rb
+index 2ffd07b..c3624ef 100644
+--- a/ruby/tests/tc_210_setvalue.rb
++++ b/ruby/tests/tc_210_setvalue.rb
+@@ -15,7 +15,8 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+-require File::join(File::dirname(__FILE__), 'test_helper')
++require 'minitest/autorun'
++require 'hivex'
+
+ class TestSetValue < Minitest::Test
+ def test_set_value
+diff --git a/ruby/tests/test_helper.rb b/ruby/tests/test_helper.rb
+deleted file mode 100644
+index f939b94..0000000
+--- a/ruby/tests/test_helper.rb
++++ /dev/null
+@@ -1,31 +0,0 @@
+-# hivex Ruby bindings -*- ruby -*-
+-# Copyright (C) 2009-2014 Red Hat Inc.
+-#
+-# 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+-
+-begin
+- require 'minitest/autorun'
+-rescue LoadError
+- require 'test/unit'
+- MiniTest = Test
+- module Test
+- Assertions = Unit::Assertions
+- module Assertions
+- alias refute_nil assert_not_nil
+- end
+- end
+-end
+-
+-require 'hivex'
+--
+2.41.0
+
\ No newline at end of file
diff --git a/SPECS/hivex/0003-build-Go-back-to-gettext-0.19.patch b/SPECS/hivex/0003-build-Go-back-to-gettext-0.19.patch
new file mode 100644
index 00000000000..f3209e44858
--- /dev/null
+++ b/SPECS/hivex/0003-build-Go-back-to-gettext-0.19.patch
@@ -0,0 +1,80 @@
+From 326399ceef0c904f78cdd5da17f7ca724292b4f8 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones"
+Date: Mon, 7 Aug 2023 10:36:46 +0100
+Subject: [PATCH 3/3] build: Go back to gettext 0.19
+
+Commit 850feece ("build: Remove gnulib") unintentionally(?) moved to
+GNU gettext 0.21. However this is not available in RHEL 8, and
+doesn't contain any new features we need. Go back to 0.19 from RHEL 8.
+
+Update: commit 850feece47b052e568392e83bff2bcdb2886f14d
+---
+ configure.ac | 2 +-
+ po/Makevars.template | 29 -----------------------------
+ 2 files changed, 1 insertion(+), 30 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 946c261..7a8b664 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -136,7 +136,7 @@ AS_IF([test "x$with_readline" != xno],
+
+ dnl For i18n.
+ AM_GNU_GETTEXT([external])
+-AM_GNU_GETTEXT_VERSION([0.21])
++AM_GNU_GETTEXT_VERSION([0.19])
+ AM_ICONV
+
+ dnl libxml2 (optional).
+diff --git a/po/Makevars.template b/po/Makevars.template
+index 86a11f1..4a9ff7d 100644
+--- a/po/Makevars.template
++++ b/po/Makevars.template
+@@ -1,8 +1,4 @@
+ # Makefile variables for PO directory in any package using GNU gettext.
+-#
+-# Copyright (C) 2003-2019 Free Software Foundation, Inc.
+-# This file is free software; the Free Software Foundation gives
+-# unlimited permission to use, copy, distribute, and modify it.
+
+ # Usually the message domain is the same as the package name.
+ DOMAIN = $(PACKAGE)
+@@ -24,13 +20,6 @@ XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+ # their copyright.
+ COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+-# This tells whether or not to prepend "GNU " prefix to the package
+-# name that gets inserted into the header of the $(DOMAIN).pot file.
+-# Possible values are "yes", "no", or empty. If it is empty, try to
+-# detect it automatically by scanning the files in $(top_srcdir) for
+-# "GNU packagename" string.
+-PACKAGE_GNU =
+-
+ # This is the email address or URL to which the translators shall report
+ # bugs in the untranslated strings:
+ # - Strings which are not entire sentences, see the maintainer guidelines
+@@ -62,21 +51,3 @@ USE_MSGCTXT = no
+ # --previous to keep previous msgids of translated messages,
+ # --quiet to reduce the verbosity.
+ MSGMERGE_OPTIONS =
+-
+-# These options get passed to msginit.
+-# If you want to disable line wrapping when writing PO files, add
+-# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and
+-# MSGINIT_OPTIONS.
+-MSGINIT_OPTIONS =
+-
+-# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
+-# has changed. Possible values are "yes" and "no". Set this to no if
+-# the POT file is checked in the repository and the version control
+-# program ignores timestamps.
+-PO_DEPENDS_ON_POT = yes
+-
+-# This tells whether or not to forcibly update $(DOMAIN).pot and
+-# regenerate PO files on "make dist". Possible values are "yes" and
+-# "no". Set this to no if the POT file and PO files are maintained
+-# externally.
+-DIST_DEPENDS_ON_UPDATE_PO = yes
+--
+2.41.0
+
\ No newline at end of file
diff --git a/SPECS/hivex/hivex.spec b/SPECS/hivex/hivex.spec
index 1aa719b348f..674faf90867 100644
--- a/SPECS/hivex/hivex.spec
+++ b/SPECS/hivex/hivex.spec
@@ -8,12 +8,18 @@
Summary: Read and write Windows Registry binary hive files
Name: hivex
Version: 1.3.23
-Release: 1%{?dist}
+Release: 2%{?dist}
License: LGPLv2+
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://libguestfs.org/
Source0: http://libguestfs.org/download/hivex/%{name}-%{version}.tar.gz
+# Upstream patches to fix Ruby minitest support.
+# https://bugzilla.redhat.com/show_bug.cgi?id=2229653
+Patch: 0001-ruby-Replace-MiniTest-with-Minitest.patch
+Patch: 0002-ruby-Get-rid-of-old-Test-Unit-compatibility.patch
+# Another upstream patch, not required.
+Patch: 0003-build-Go-back-to-gettext-0.19.patch
BuildRequires: %{_bindir}/pod2html
BuildRequires: %{_bindir}/pod2man
@@ -46,7 +52,7 @@ BuildRequires: rubygem(minitest)
BuildRequires: rubygem(rdoc)
%if %{with ocaml}
-BuildRequires: ocaml
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-findlib-devel
%endif
@@ -244,6 +250,10 @@ fi
%{ruby_vendorarchdir}/_hivex.so
%changelog
+* Wed May 08 2024 Mykhailo Bykhovtsev - 1.3.23-2
+- Rebuild with using ocaml 5.1.1
+- Add patches for Ruby and gettext. Imported from Fedora 41
+
* Fri Feb 16 2024 Yash Panchal - 1.3.23-1
- Upgrate to 1.3.23.
diff --git a/SPECS/libguestfs/libguestfs.spec b/SPECS/libguestfs/libguestfs.spec
index 17eec643b1f..ba4878117d1 100644
--- a/SPECS/libguestfs/libguestfs.spec
+++ b/SPECS/libguestfs/libguestfs.spec
@@ -25,7 +25,7 @@
Summary: Access and modify virtual machine disk images
Name: libguestfs
Version: 1.52.0
-Release: 3%{?dist}
+Release: 4%{?dist}
License: LGPLv2+
Vendor: Microsoft Corporation
Distribution: Azure Linux
@@ -123,7 +123,7 @@ BuildRequires: ntfs-3g
BuildRequires: ntfs-3g-system-compression
BuildRequires: ntfsprogs
# For language bindings.
-BuildRequires: ocaml
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-augeas-devel
BuildRequires: ocaml-findlib-devel
BuildRequires: ocaml-gettext-devel
@@ -1146,6 +1146,10 @@ rm ocaml/html/.gitignore
%endif
%changelog
+* Tue May 28 2024 Mykhailo Bykhovtsev - 1.52.0-4
+- Use ocaml >= 5.1.1
+- Rebuild for new version of supermin
+
* Wed May 22 2024 Suresh Babu Chalamalasetty - 1.52.0-3
- update to build dep latest glibc-static version
diff --git a/SPECS/llvm/llvm.spec b/SPECS/llvm/llvm.spec
index 236c06d569b..9c7568f36be 100644
--- a/SPECS/llvm/llvm.spec
+++ b/SPECS/llvm/llvm.spec
@@ -1,7 +1,7 @@
Summary: A collection of modular and reusable compiler and toolchain technologies.
Name: llvm
Version: 18.1.2
-Release: 1%{?dist}
+Release: 2%{?dist}
License: NCSA
Vendor: Microsoft Corporation
Distribution: Azure Linux
@@ -14,6 +14,7 @@ BuildRequires: libffi-devel
BuildRequires: libxml2-devel
BuildRequires: ninja-build
BuildRequires: python3-devel
+BuildRequires: binutils-devel
Requires: libxml2
Provides: %{name} = %{version}
Provides: %{name} = %{version}-%{release}
@@ -62,6 +63,9 @@ cmake -G Ninja \
%install
%ninja_install -C build
+mkdir -p %{buildroot}%{_libdir}/bfd-plugins/
+ln -s -t %{buildroot}%{_libdir}/bfd-plugins/ ../LLVMgold.so
+
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
@@ -85,6 +89,7 @@ ninja check-all
%{_bindir}/*
%{_libdir}/*.so
%{_libdir}/*.so.*
+%{_libdir}/bfd-plugins/LLVMgold.so
%dir %{_datadir}/opt-viewer
%{_datadir}/opt-viewer/opt-diff.py
%{_datadir}/opt-viewer/opt-stats.py
@@ -99,6 +104,9 @@ ninja check-all
%{_includedir}/*
%changelog
+* Fri Apr 5 2024 Mykhailo Bykhovtsev - 18.1.2-2
+- Added symlink for %{buildroot}%{_libdir}/bfd-plugins/ -> LLVMgold.so to the main package
+
* Wed Apr 03 2024 Andrew Phelps - 18.1.2-1
- Upgrade to version 18.1.2
diff --git a/SPECS/nbdkit/nbdkit.spec b/SPECS/nbdkit/nbdkit.spec
index 643448f239d..4ed1738f277 100644
--- a/SPECS/nbdkit/nbdkit.spec
+++ b/SPECS/nbdkit/nbdkit.spec
@@ -51,7 +51,7 @@ Distribution: Azure Linux
Name: nbdkit
Version: 1.35.3
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: NBD server
License: BSD
@@ -94,7 +94,7 @@ BuildRequires: python3-devel
BuildRequires: python3-boto3
%endif
%if 0%{?have_ocaml}
-BuildRequires: ocaml >= 4.03
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-ocamldoc
%endif
%if %{with ruby}
@@ -1195,6 +1195,9 @@ export LIBGUESTFS_TRACE=1
%changelog
+* Thu May 02 2024 Mykhailo Bykhovtsev - 1.35.3-5
+- Upgraded ocaml dependency to 5.1.1
+
* Fri Feb 16 2024 Andrew Phelps - 1.35.3-4
- Wrap test dependencies in with_check if block
diff --git a/SPECS/ocaml-augeas/0001-Use-ocamlopt-g-option.patch b/SPECS/ocaml-augeas/0001-Use-ocamlopt-g-option.patch
new file mode 100644
index 00000000000..a6664987c3d
--- /dev/null
+++ b/SPECS/ocaml-augeas/0001-Use-ocamlopt-g-option.patch
@@ -0,0 +1,27 @@
+From 56c0602e972f1fae336198eb9587d71f1e36daff Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones"
+Date: Tue, 20 Aug 2019 15:06:57 +0100
+Subject: [PATCH 1/2] Use ocamlopt -g option.
+
+Originally from Fedora.
+---
+ Makefile.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index e01385f..4ae5ef5 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -34,8 +34,8 @@ LIBS = @AUGEAS_LIBS@ @LIBXML2_LIBS@ @LIBS@
+
+ OCAMLCFLAGS = -g
+ OCAMLCPACKAGES =
+-OCAMLOPTFLAGS =
+-OCAMLOPTPACKAGES =
++OCAMLOPTFLAGS = $(OCAMLCFLAGS)
++OCAMLOPTPACKAGES = $(OCAMLCPACKAGES)
+
+ OCAMLDOCFLAGS = -html -sort
+
+--
+2.23.0
diff --git a/SPECS/ocaml-augeas/0002-caml_named_value-returns-const-value-pointer-in-OCam.patch b/SPECS/ocaml-augeas/0002-caml_named_value-returns-const-value-pointer-in-OCam.patch
new file mode 100644
index 00000000000..644e862c934
--- /dev/null
+++ b/SPECS/ocaml-augeas/0002-caml_named_value-returns-const-value-pointer-in-OCam.patch
@@ -0,0 +1,34 @@
+From 1cf5aef99b26a46529ca797547c0b49627fffe78 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones"
+Date: Sat, 7 Dec 2019 11:08:54 +0000
+Subject: [PATCH 2/2] caml_named_value returns const value pointer in OCaml
+ 4.09+
+
+---
+ augeas-c.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/augeas-c.c b/augeas-c.c
+index 9217017..679bcb5 100644
+--- a/augeas-c.c
++++ b/augeas-c.c
+@@ -86,7 +86,7 @@ static const int error_map_len = sizeof error_map / sizeof error_map[0];
+ static void
+ raise_error_and_maybe_close (augeas_t t, const char *msg, bool close_handle)
+ {
+- value *exn = caml_named_value ("Augeas.Error");
++ const value *exn = caml_named_value ("Augeas.Error");
+ value args[5];
+ const int code = aug_error (t);
+ const char *aug_err_msg;
+@@ -132,7 +132,7 @@ raise_error_and_maybe_close (augeas_t t, const char *msg, bool close_handle)
+ static void
+ raise_init_error (const char *msg)
+ {
+- value *exn = caml_named_value ("Augeas.Error");
++ const value *exn = caml_named_value ("Augeas.Error");
+ value args[5];
+
+ args[0] = caml_alloc (1, 0);
+--
+2.23.0
diff --git a/SPECS/ocaml-augeas/ocaml-augeas.spec b/SPECS/ocaml-augeas/ocaml-augeas.spec
index cacdd4e5fc4..3a14f24e5f6 100644
--- a/SPECS/ocaml-augeas/ocaml-augeas.spec
+++ b/SPECS/ocaml-augeas/ocaml-augeas.spec
@@ -5,56 +5,43 @@ ExcludeArch: %{ix86}
Summary: OCaml bindings for Augeas configuration API
Name: ocaml-%{srcname}
Version: 0.6
-Release: 32%{?dist}
+Release: 33%{?dist}
License: LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://people.redhat.com/~rjones/augeas/files/
Source0: https://people.redhat.com/~rjones/%{srcname}/files/%{name}-%{version}.tar.gz
-Source1: ocaml_files.py
-Source2: macros.ocaml-rpm
-
# Upstream patch to enable debuginfo.
-#Patch1: 0001-Use-ocamlopt-g-option.patch
+Patch1: 0001-Use-ocamlopt-g-option.patch
# Const-correctness fix for OCaml 4.09+
-#Patch2: 0002-caml_named_value-returns-const-value-pointer-in-OCam.patch
-
+Patch2: 0002-caml_named_value-returns-const-value-pointer-in-OCam.patch
+
BuildRequires: make
-BuildRequires: ocaml >= 3.09.0
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-findlib
BuildRequires: ocaml-ocamldoc
+BuildRequires: ocaml-rpm-macros
BuildRequires: augeas-devel >= 0.1.0
-
-
+
%description
Augeas is a unified system for editing arbitrary configuration
files. This provides complete OCaml bindings for Augeas.
-
-
+
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
-
-
+
%description devel
The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
-
-
+
%prep
%autosetup -p1
-
+
# Pass -g to ocamlmklib
sed -i 's/ocamlmklib/& -g/' Makefile.in
-cp -v %{SOURCE1} %{_rpmconfigdir}/azl
-cp -v %{SOURCE2} %{_rpmmacrodir}/
-
%build
-export CFLAGS="$CFLAGS -Wno-discarded-qualifiers"
-export CXXFLAGS="$CXXFLAGS -Wno-discarded-qualifiers"
-export FCFLAGS="$FCFLAGS -Wno-discarded-qualifiers"
-
%configure
%ifarch %{ocaml_native_compiler}
make
@@ -62,17 +49,15 @@ make
make mlaugeas.cma test_augeas
%endif
make doc
-
-
+
%check
make check
-
-
+
%install
export DESTDIR=$RPM_BUILD_ROOT
export OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml
mkdir -p $OCAMLFIND_DESTDIR $OCAMLFIND_DESTDIR/stublibs
-
+
# The upstream 'make install' rule is missing '*.so' and distributes
# '*.cmi' instead of just the augeas.cmi file. Temporary fix:
#make install
@@ -81,24 +66,22 @@ ocamlfind install augeas META *.mli *.cmx *.cma *.cmxa *.a augeas.cmi *.so
%else
ocamlfind install augeas META *.mli *.cma *.a augeas.cmi *.so
%endif
-
-%files
+
+%ocaml_files
+
+
+%files -f .ofiles
%license COPYING.LIB
-%{_libdir}/ocaml/%{srcname}/META
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmi
-%{_libdir}/ocaml/%{srcname}/mlaugeas.cma
-%{_libdir}/ocaml/stublibs/dllmlaugeas.so
-%{_libdir}/ocaml/stublibs/dllmlaugeas.so.owner
-%files devel
+
+%files devel -f .ofiles-devel
%doc html
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmx
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.mli
-%{_libdir}/ocaml/%{srcname}/*.a
-%{_libdir}/ocaml/%{srcname}/mlaugeas.cmxa
-
-
+
%changelog
+* Wed May 01 2024 Mykhailo Bykhovtsev - 0.6-33
+- Converted spec file to match with Fedora 41.
+- Removing embedded macros file in favor of using one provided by the ocaml-rpm-macros package.
+
* Fri Mar 29 2024 Betty Lakes - 0.6-32
- Cleaning-up spec. License verified.
- Initial Azure Linux import from Fedora 40 (license: MIT).
diff --git a/SPECS/ocaml-base/ocaml-base-mathlib.patch b/SPECS/ocaml-base/ocaml-base-mathlib.patch
new file mode 100644
index 00000000000..17d67c3358e
--- /dev/null
+++ b/SPECS/ocaml-base/ocaml-base-mathlib.patch
@@ -0,0 +1,10 @@
+--- base-0.16.1/src/dune.orig 2023-06-20 14:08:15.139975537 -0600
++++ base-0.16.1/src/dune 2023-06-20 14:08:38.642631102 -0600
+@@ -11,6 +11,7 @@
+ (ocamlopt_flags :standard (:include ocamlopt-flags))
+ (libraries base_internalhash_types caml sexplib0 shadow_stdlib)
+ (c_flags :standard -D_LARGEFILE64_SOURCE (:include mpopcnt.sexp))
++ (c_library_flags -lm)
+ (c_names bytes_stubs exn_stubs int_math_stubs hash_stubs am_testing)
+ (preprocess no_preprocessing)
+ (lint
diff --git a/SPECS/ocaml-base/ocaml-base.signatures.json b/SPECS/ocaml-base/ocaml-base.signatures.json
index 08f0d845dfd..efb48083bf5 100644
--- a/SPECS/ocaml-base/ocaml-base.signatures.json
+++ b/SPECS/ocaml-base/ocaml-base.signatures.json
@@ -1,5 +1,5 @@
{
"Signatures": {
- "base-0.15.0.tar.gz": "9c2cdcd9ef565d444e261f43270377228c9d01e71ab2e78edb00956912c710aa"
+ "base-0.16.3.tar.gz": "9bf9e503e2bd010325c7b0f5ae007ce1e5d3da61f0e06d2fbb64e9d12ccff93c"
}
}
diff --git a/SPECS/ocaml-base/ocaml-base.spec b/SPECS/ocaml-base/ocaml-base.spec
index fccc6503045..4dfe483329b 100644
--- a/SPECS/ocaml-base/ocaml-base.spec
+++ b/SPECS/ocaml-base/ocaml-base.spec
@@ -5,17 +5,28 @@
Summary: Jane Street standard library for OCaml
Name: ocaml-%{srcname}
-Version: 0.15.0
-Release: 2%{?dist}
+Version: 0.16.3
+Release: 1%{?dist}
License: MIT
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://opensource.janestreet.com/base/
Source0: https://github.com/janestreet/%{srcname}/archive/v%{version}/%{srcname}-%{version}.tar.gz
-Patch0: %{name}-ocaml413compat.patch
-BuildRequires: ocaml >= 4.07.0
-BuildRequires: ocaml-dune-devel >= 2.0.0
-BuildRequires: ocaml-sexplib0-devel >= 0.15
+# Expose a dependency on the math library so RPM can see it
+Patch0: %{name}-mathlib.patch
+
+BuildRequires: ocaml >= 5.1.1
+BuildRequires: ocaml-dune >= 2.0.0
+BuildRequires: ocaml-dune-configurator-devel
+BuildRequires: ocaml-sexplib0-devel >= 0.16
+
+%if %{with_check}
+BuildRequires: ocaml-num-devel
+BuildRequires: ocaml-ppx-jane-devel
+BuildRequires: ocaml-sexplib-devel
+BuildRequires: ocaml-stdio-devel
+BuildRequires: ocaml-uutf-devel
+%endif
%description
Base is a standard library for OCaml. It provides a standard set of
@@ -40,79 +51,25 @@ developing applications that use %{name}.
%autosetup -n %{srcname}-%{version} -p1
%build
-dune build %{?_smp_mflags}
-
-# TODO: Once odoc is available, BR it and run this to generate documentation:
-# dune build %{?_smp_mflags} @doc
-
-# Dune passes %%build_ldflags to ocamlmklib without -ldopt, resulting in
-# "Unknown option" warnings from ocamlmklib and a library that has not been
-# linked with the correct flags. We can't add -ldopt ourselves, since that
-# breaks compilation of the cmxs files. This seems to be a weakness of dune;
-# linker flags and libraries to be linked with have to be specified together,
-# and nothing takes care of separating them and adding ldopt as necessary. We
-# relink manually to address the problem.
-pushd _build/default/src
-ocamlmklib -g -ldopt "%{build_ldflags}" -o base_stubs *.o
-cd ../hash_types/src
-ocamlmklib -g -ldopt "%{build_ldflags}" -o base_internalhash_types_stubs *.o
-popd
+%dune_build
%install
-dune install --destdir=%{buildroot}
-
-# We install the documentation with the doc macro
-rm -fr %{buildroot}%{_prefix}/doc
+%dune_install
-%ifarch %{ocaml_native_compiler}
-# Add missing executable bits
-find %{buildroot}%{_libdir}/ocaml -name \*.cmxs -exec chmod a+x {} \+
-%endif
+%check
+%dune_check
-%files
+%files -f .ofiles
%doc CHANGES.md README.org ROADMAP.md
%license LICENSE.md
-%dir %{_libdir}/ocaml/%{srcname}/
-%dir %{_libdir}/ocaml/%{srcname}/base_internalhash_types/
-%dir %{_libdir}/ocaml/%{srcname}/caml/
-%dir %{_libdir}/ocaml/%{srcname}/md5/
-%dir %{_libdir}/ocaml/%{srcname}/shadow_stdlib/
-%{_libdir}/ocaml/%{srcname}/META
-%{_libdir}/ocaml/%{srcname}/*.cma
-%{_libdir}/ocaml/%{srcname}/*.cmi
-%{_libdir}/ocaml/%{srcname}/*.js
-%{_libdir}/ocaml/%{srcname}/*/*.cma
-%{_libdir}/ocaml/%{srcname}/*/*.cmi
-%{_libdir}/ocaml/%{srcname}/*/*.js
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/*.cmxs
-%{_libdir}/ocaml/%{srcname}/*/*.cmxs
-%endif
-%{_libdir}/ocaml/stublibs/dllbase_stubs.so
-%{_libdir}/ocaml/stublibs/dllbase_internalhash_types_stubs.so
-
-%files devel
-%{_libdir}/ocaml/%{srcname}/dune-package
-%{_libdir}/ocaml/%{srcname}/opam
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/*.a
-%{_libdir}/ocaml/%{srcname}/*.cmx
-%{_libdir}/ocaml/%{srcname}/*.cmxa
-%{_libdir}/ocaml/%{srcname}/*/*.a
-%{_libdir}/ocaml/%{srcname}/*/*.cmx
-%{_libdir}/ocaml/%{srcname}/*/*.cmxa
-%endif
-%{_libdir}/ocaml/%{srcname}/*.cmt
-%{_libdir}/ocaml/%{srcname}/*.cmti
-%{_libdir}/ocaml/%{srcname}/*.ml
-%{_libdir}/ocaml/%{srcname}/*.mli
-%{_libdir}/ocaml/%{srcname}/*/*.cmt
-%{_libdir}/ocaml/%{srcname}/*/*.cmti
-%{_libdir}/ocaml/%{srcname}/*/*.h
-%{_libdir}/ocaml/%{srcname}/*/*.ml
-%{_libdir}/ocaml/%{srcname}/*/*.mli
+
+%files devel -f .ofiles-devel
%changelog
+* Wed May 01 2024 Mykhailo Bykhovtsev - 0.16.3-1
+- Converted spec file to match with Fedora 41.
+- Upgrade to 0.16.3
+
* Thu Mar 31 2022 Pawel Winogrodzki - 0.15.0-2
- Cleaning-up spec. License verified.
diff --git a/SPECS/ocaml-bisect-ppx/ocaml-bisect-ppx.spec b/SPECS/ocaml-bisect-ppx/ocaml-bisect-ppx.spec
index aa088c9e385..ae8fdd6822e 100644
--- a/SPECS/ocaml-bisect-ppx/ocaml-bisect-ppx.spec
+++ b/SPECS/ocaml-bisect-ppx/ocaml-bisect-ppx.spec
@@ -8,7 +8,7 @@
Summary: Code coverage for OCaml and Reason
Name: ocaml-%{srcname}
Version: 2.6.3
-Release: 3%{?dist}
+Release: 4%{?dist}
License: MIT
Vendor: Microsoft Corporation
Distribution: Azure Linux
@@ -16,10 +16,10 @@ URL: https://aantron.github.io/bisect_ppx/
Source0: https://github.com/aantron/%{upname}/archive/%{version}/%{upname}-%{version}.tar.gz
BuildRequires: git-core
-BuildRequires: ocaml >= 4.02.0
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-cmdliner-devel >= 1.0.0
BuildRequires: ocaml-dune >= 2.7.0
-BuildRequires: ocaml-ppxlib-devel >= 0.21.0
+BuildRequires: ocaml-ppxlib-devel >= 0.31.0
Provides: %{name}-doc = %{version}-%{release}
@@ -112,6 +112,9 @@ find %{buildroot}%{_libdir}/ocaml -name \*.ml -delete
%{_libdir}/ocaml/%{upname}/runtime/*.mli
%changelog
+* Mon May 06 2024 Mykhailo Bykhovtsev - 2.6.3-4
+- Rebuild using ocaml 5.1.1
+
* Thu Mar 31 2022 Pawel Winogrodzki - 2.6.3-3
- Cleaning-up spec. License verified.
diff --git a/SPECS/ocaml-camlp-streams/ocaml-camlp-streams.signatures.json b/SPECS/ocaml-camlp-streams/ocaml-camlp-streams.signatures.json
new file mode 100644
index 00000000000..49c508f9716
--- /dev/null
+++ b/SPECS/ocaml-camlp-streams/ocaml-camlp-streams.signatures.json
@@ -0,0 +1,5 @@
+{
+ "Signatures": {
+ "camlp-streams-5.0.1.tar.gz": "ad71f62406e9bb4e7fb5d4593ede2af6c68f8b0d96f25574446e142c3eb0d9a4"
+ }
+}
diff --git a/SPECS/ocaml-camlp-streams/ocaml-camlp-streams.spec b/SPECS/ocaml-camlp-streams/ocaml-camlp-streams.spec
new file mode 100644
index 00000000000..155f0a57665
--- /dev/null
+++ b/SPECS/ocaml-camlp-streams/ocaml-camlp-streams.spec
@@ -0,0 +1,109 @@
+# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
+ExcludeArch: %{ix86}
+
+%ifnarch %{ocaml_native_compiler}
+%global debug_package %{nil}
+%endif
+
+Name: ocaml-camlp-streams
+Version: 5.0.1
+Release: 13%{?dist}
+Summary: Stream and Genlex libraries for OCaml
+License: LGPL-2.1-only WITH OCaml-LGPL-linking-exception
+URL: https://github.com/ocaml/camlp-streams
+Source0: %{url}/archive/v%{version}/camlp-streams-%{version}.tar.gz
+
+BuildRequires: ocaml >= 5.1.1
+BuildRequires: ocaml-dune >= 2.7
+
+%description
+The camlp-streams package provides two library modules:
+- Stream: imperative streams, with in-place update and memoization of
+ the latest element produced.
+- Genlex: a small parameterized lexical analyzer producing streams of
+ tokens from streams of characters.
+
+The two modules are designed for use with Camlp4 and Camlp5:
+- The stream patterns and stream expressions of Camlp4/Camlp5 consume
+ and produce data of type `'a Stream.t`.
+- The Genlex tokenizer can be used as a simple lexical analyzer for
+ Camlp4/Camlp5-generated parsers.
+
+The Stream module can also be used by hand-written recursive-descent
+parsers, but is not very convenient for this purpose.
+
+The Stream and Genlex modules have been part of the OCaml standard
+library for a long time, and have been distributed as part of the core
+OCaml system. They will be removed from the OCaml standard library at
+some future point, but will be maintained and distributed separately in
+this camlp-streams package.
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+The %{name}-devel package contains libraries and signature
+files for developing applications that use %{name}.
+
+%prep
+%autosetup -n camlp-streams-%{version}
+
+%build
+%dune_build
+
+%install
+%dune_install
+
+%check
+%dune_check
+
+%files -f .ofiles
+%doc CHANGES.md README.md
+%license LICENSE
+
+%files devel -f .ofiles-devel
+
+%changelog
+* Mon May 06 2024 Mykhailo Bykhovtsev - 5.0.1-13
+- Initial Azure Linux import from Fedora 41 (license: MIT)
+- License verified
+
+* Thu Jan 25 2024 Fedora Release Engineering - 5.0.1-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Sun Jan 21 2024 Fedora Release Engineering - 5.0.1-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Mon Dec 18 2023 Richard W.M. Jones - 5.0.1-10
+- OCaml 5.1.1 + s390x code gen fix for Fedora 40
+
+* Tue Dec 12 2023 Richard W.M. Jones - 5.0.1-9
+- OCaml 5.1.1 rebuild for Fedora 40
+
+* Thu Oct 05 2023 Richard W.M. Jones - 5.0.1-8
+- OCaml 5.1 rebuild for Fedora 40
+
+* Thu Jul 20 2023 Fedora Release Engineering - 5.0.1-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
+
+* Tue Jul 11 2023 Richard W.M. Jones - 5.0.1-6
+- OCaml 5.0 rebuild for Fedora 39
+
+* Mon Jul 10 2023 Jerry James - 5.0.1-5
+- OCaml 5.0.0 rebuild
+
+* Tue Jan 24 2023 Richard W.M. Jones - 5.0.1-4
+- Rebuild OCaml packages for F38
+
+* Thu Jan 19 2023 Fedora Release Engineering - 5.0.1-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+
+* Mon Dec 12 2022 Jerry James - 5.0.1-2
+- Convert License tag to SPDX
+
+* Fri Jul 22 2022 Fedora Release Engineering - 5.0.1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
+* Tue Jul 5 2022 Jerry James - 5.0.1-1
+- Initial RPM (rhbz#2104283)
\ No newline at end of file
diff --git a/SPECS/ocaml-camomile/0001-Camomile-locales-eo.txt-Fix-license-by-importing-dat.patch b/SPECS/ocaml-camomile/0001-Camomile-locales-eo.txt-Fix-license-by-importing-dat.patch
new file mode 100644
index 00000000000..ab80ca6a584
--- /dev/null
+++ b/SPECS/ocaml-camomile/0001-Camomile-locales-eo.txt-Fix-license-by-importing-dat.patch
@@ -0,0 +1,787 @@
+From 5cc39e952a6445866196674f87761576e27fc494 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones"
+Date: Mon, 26 Apr 2021 11:50:15 +0100
+Subject: [PATCH] src/locales/eo.txt: Fix license by importing data from ICU
+
+The license for this particular (Esperanto) file is non-free.
+Possibly it is supposed to be overridden by the "license.html" file in
+the current directory, but our tooling can't read HTML files.
+
+We can fix this by importing the same data from the newer Unicode ICU
+project files, as these are distributed under a free license. This
+also gives us slightly increased functionality.
+
+See also:
+
+https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/thread/EP453A4JSXM2DKIBLPYBKLID47OCKCPW/
+
+Signed-off-by: Richard W.M. Jones
+---
+ src/locales/eo.txt | 479 ++++++++++++++++++++++++++++++++++------
+ 1 file changed, 415 insertions(+), 64 deletions(-)
+
+diff --git a/src/locales/eo.txt b/src/locales/eo.txt
+index 6973c72..2c7b2e5 100644
+--- a/src/locales/eo.txt
++++ b/src/locales/eo.txt
+@@ -1,165 +1,600 @@
+-// ***************************************************************************
+-// * *
+-// * COPYRIGHT: *
+-// * Copyright (C) 1997-2002, International Business Machines *
+-// * Licensed Material - Program-Property of IBM - All Rights Reserved. *
+-// * US Government Users Restricted Rights - Use, duplication, or disclosure *
+-// * restricted by GSA ADP Schedule Contract with IBM Corp. *
+-// * *
+-// ***************************************************************************
+-// Feedback to : schererm@us.ibm.com
+-
+-eo {
++// © 2016 and later: Unicode, Inc. and others.
++// License & terms of use: http://www.unicode.org/copyright.html
++// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
++eo{
+ Version { "2.0" }
+- Countries {
+- AT { "A\u016dstrujo" }
+- BE { "Belgujo" }
+- CA { "Kanado" }
+- CH { "Svisujo" }
+- DE { "Germanujo" }
+- DK { "Danujo" }
+- ES { "Hispanujo" }
+- FI { "Finnlando" }
+- GR { "Grekujo" }
+- IT { "Italujo" }
+- JP { "Japanujo" }
+- NL { "Nederlando" }
+- NO { "Norvego" }
+- PT { "Portugalujo" }
+- SE { "Svedujo" }
+- TR { "Turkujo" }
+- US { "Usono" }
+- }
+- DateTimePatterns {
+- "H'-a horo kaj 'm z",
+- "HH:mm:ss z",
+- "HH:mm:ss",
+- "HH:mm",
+- "EEEE, d'-a de 'MMMM yyyy",
+- "yyyy-MMMM-dd",
+- "yyyy-MMM-dd",
+- "yy-MM-dd",
+- "{1} {0}",
+- }
+- DateTimeElements:intvector {
+- 2,
+- 4,
+- }
+- AmPmMarkers {
+- "atm",
+- "ptm",
+- }
+- DayAbbreviations {
+- "di",
+- "lu",
+- "ma",
+- "me",
+- "\u0135a",
+- "ve",
+- "sa",
+- }
+- DayNames {
+- "diman\u0109o",
+- "lundo",
+- "mardo",
+- "merkredo",
+- "\u0135a\u016ddo",
+- "vendredo",
+- "sabato",
+- }
+- Eras {
+- "aK",
+- "pK",
+- }
+- Languages {
+- da { "dana" }
+- de { "germana" }
+- el { "greka" }
+- en { "angla" }
+- eo { "esperanto" }
+- es { "hispana" }
+- fi { "finna" }
+- it { "itala" }
+- ja { "japana" }
+- nl { "nederlanda" }
+- no { "norvega" }
+- pt { "portugala" }
+- sv { "sveda" }
+- tr { "turka" }
++ Countries{
++ 001{"Mondo"}
++ AD{"Andoro"}
++ AE{"Unuiĝintaj Arabaj Emirlandoj"}
++ AF{"Afganujo"}
++ AG{"Antigvo-Barbudo"}
++ AI{"Angvilo"}
++ AL{"Albanujo"}
++ AM{"Armenujo"}
++ AO{"Angolo"}
++ AQ{"Antarkto"}
++ AR{"Argentino"}
++ AT{"Aŭstrujo"}
++ AU{"Aŭstralio"}
++ AW{"Arubo"}
++ AZ{"Azerbajĝano"}
++ BA{"Bosnio-Hercegovino"}
++ BB{"Barbado"}
++ BD{"Bangladeŝo"}
++ BE{"Belgujo"}
++ BF{"Burkino"}
++ BG{"Bulgarujo"}
++ BH{"Barejno"}
++ BI{"Burundo"}
++ BJ{"Benino"}
++ BM{"Bermudoj"}
++ BN{"Brunejo"}
++ BO{"Bolivio"}
++ BR{"Brazilo"}
++ BS{"Bahamoj"}
++ BT{"Butano"}
++ BW{"Bocvano"}
++ BY{"Belorusujo"}
++ BZ{"Belizo"}
++ CA{"Kanado"}
++ CF{"Centr-Afrika Respubliko"}
++ CG{"Kongolo"}
++ CH{"Svisujo"}
++ CI{"Ebur-Bordo"}
++ CK{"Kukinsuloj"}
++ CL{"Ĉilio"}
++ CM{"Kameruno"}
++ CN{"Ĉinujo"}
++ CO{"Kolombio"}
++ CR{"Kostariko"}
++ CU{"Kubo"}
++ CV{"Kabo-Verdo"}
++ CY{"Kipro"}
++ CZ{"Ĉeĥujo"}
++ DE{"Germanujo"}
++ DJ{"Ĝibutio"}
++ DK{"Danujo"}
++ DM{"Dominiko"}
++ DO{"Domingo"}
++ DZ{"Alĝerio"}
++ EC{"Ekvadoro"}
++ EE{"Estonujo"}
++ EG{"Egipto"}
++ EH{"Okcidenta Saharo"}
++ ER{"Eritreo"}
++ ES{"Hispanujo"}
++ ET{"Etiopujo"}
++ FI{"Finnlando"}
++ FJ{"Fiĝoj"}
++ FM{"Mikronezio"}
++ FO{"Ferooj"}
++ FR{"Francujo"}
++ GA{"Gabono"}
++ GB{"Unuiĝinta Reĝlando"}
++ GD{"Grenado"}
++ GE{"Kartvelujo"}
++ GF{"Franca Gviano"}
++ GH{"Ganao"}
++ GI{"Ĝibraltaro"}
++ GL{"Gronlando"}
++ GM{"Gambio"}
++ GN{"Gvineo"}
++ GP{"Gvadelupo"}
++ GQ{"Ekvatora Gvineo"}
++ GR{"Grekujo"}
++ GS{"Sud-Georgio kaj Sud-Sandviĉinsuloj"}
++ GT{"Gvatemalo"}
++ GU{"Gvamo"}
++ GW{"Gvineo-Bisaŭo"}
++ GY{"Gujano"}
++ HM{"Herda kaj Makdonaldaj Insuloj"}
++ HN{"Honduro"}
++ HR{"Kroatujo"}
++ HT{"Haitio"}
++ HU{"Hungarujo"}
++ ID{"Indonezio"}
++ IE{"Irlando"}
++ IL{"Israelo"}
++ IN{"Hindujo"}
++ IO{"Brita Hindoceana Teritorio"}
++ IQ{"Irako"}
++ IR{"Irano"}
++ IS{"Islando"}
++ IT{"Italujo"}
++ JM{"Jamajko"}
++ JO{"Jordanio"}
++ JP{"Japanujo"}
++ KE{"Kenjo"}
++ KG{"Kirgizistano"}
++ KH{"Kamboĝo"}
++ KI{"Kiribato"}
++ KM{"Komoroj"}
++ KN{"Sent-Kristofo kaj Neviso"}
++ KP{"Nord-Koreo"}
++ KR{"Sud-Koreo"}
++ KW{"Kuvajto"}
++ KY{"Kejmanoj"}
++ KZ{"Kazaĥstano"}
++ LA{"Laoso"}
++ LB{"Libano"}
++ LC{"Sent-Lucio"}
++ LI{"Liĥtenŝtejno"}
++ LK{"Sri-Lanko"}
++ LR{"Liberio"}
++ LS{"Lesoto"}
++ LT{"Litovujo"}
++ LU{"Luksemburgo"}
++ LV{"Latvujo"}
++ LY{"Libio"}
++ MA{"Maroko"}
++ MC{"Monako"}
++ MD{"Moldavujo"}
++ MG{"Madagaskaro"}
++ MH{"Marŝaloj"}
++ ML{"Malio"}
++ MM{"Mjanmao"}
++ MN{"Mongolujo"}
++ MP{"Nord-Marianoj"}
++ MQ{"Martiniko"}
++ MR{"Maŭritanujo"}
++ MT{"Malto"}
++ MU{"Maŭricio"}
++ MV{"Maldivoj"}
++ MW{"Malavio"}
++ MX{"Meksiko"}
++ MY{"Malajzio"}
++ MZ{"Mozambiko"}
++ NA{"Namibio"}
++ NC{"Nov-Kaledonio"}
++ NE{"Niĝero"}
++ NF{"Norfolkinsulo"}
++ NG{"Niĝerio"}
++ NI{"Nikaragvo"}
++ NL{"Nederlando"}
++ NO{"Norvegujo"}
++ NP{"Nepalo"}
++ NR{"Nauro"}
++ NU{"Niuo"}
++ NZ{"Nov-Zelando"}
++ OM{"Omano"}
++ PA{"Panamo"}
++ PE{"Peruo"}
++ PF{"Franca Polinezio"}
++ PG{"Papuo-Nov-Gvineo"}
++ PH{"Filipinoj"}
++ PK{"Pakistano"}
++ PL{"Pollando"}
++ PM{"Sent-Piero kaj Mikelono"}
++ PN{"Pitkarna Insulo"}
++ PR{"Puerto-Riko"}
++ PT{"Portugalujo"}
++ PW{"Belaŭo"}
++ PY{"Paragvajo"}
++ QA{"Kataro"}
++ RE{"Reunio"}
++ RO{"Rumanujo"}
++ RU{"Rusujo"}
++ RW{"Ruando"}
++ SA{"Saŭda Arabujo"}
++ SB{"Salomonoj"}
++ SC{"Sejŝeloj"}
++ SD{"Sudano"}
++ SE{"Svedujo"}
++ SG{"Singapuro"}
++ SH{"Sent-Heleno"}
++ SI{"Slovenujo"}
++ SJ{"Svalbardo kaj Jan-Majen-insulo"}
++ SK{"Slovakujo"}
++ SL{"Siera-Leono"}
++ SM{"San-Marino"}
++ SN{"Senegalo"}
++ SO{"Somalujo"}
++ SR{"Surinamo"}
++ ST{"Sao-Tomeo kaj Principeo"}
++ SV{"Salvadoro"}
++ SY{"Sirio"}
++ SZ{"Svazilando"}
++ TD{"Ĉado"}
++ TG{"Togolo"}
++ TH{"Tajlando"}
++ TJ{"Taĝikujo"}
++ TM{"Turkmenujo"}
++ TN{"Tunizio"}
++ TO{"Tongo"}
++ TR{"Turkujo"}
++ TT{"Trinidado kaj Tobago"}
++ TV{"Tuvalo"}
++ TW{"Tajvano"}
++ TZ{"Tanzanio"}
++ UA{"Ukrajno"}
++ UG{"Ugando"}
++ UM{"Usonaj malgrandaj insuloj"}
++ US{"Usono"}
++ UY{"Urugvajo"}
++ UZ{"Uzbekujo"}
++ VA{"Vatikano"}
++ VC{"Sent-Vincento kaj la Grenadinoj"}
++ VE{"Venezuelo"}
++ VG{"Britaj Virgulininsuloj"}
++ VI{"Usonaj Virgulininsuloj"}
++ VN{"Vjetnamo"}
++ VU{"Vanuatuo"}
++ WF{"Valiso kaj Futuno"}
++ WS{"Samoo"}
++ YE{"Jemeno"}
++ YT{"Majoto"}
++ ZA{"Sud-Afriko"}
++ ZM{"Zambio"}
++ ZW{"Zimbabvo"}
+ }
+- //LocaleID { "07e0" }
+-// LocaleString { "eo" }
+- MonthAbbreviations {
+- "jan",
+- "feb",
+- "mar",
+- "apr",
+- "maj",
+- "jun",
+- "jul",
+- "a\u016dg",
+- "sep",
+- "okt",
+- "nov",
+- "dec",
++ AuxExemplarCharacters{"[q w x y]"}
++ ExemplarCharacters{"[a b c ĉ d e f g ĝ h ĥ i j ĵ k l m n o p r s ŝ t u ŭ v z]"}
++ ExemplarCharactersIndex{"[A B C Ĉ D E F G Ĝ H Ĥ I J Ĵ K L M N O P R S Ŝ T U Ŭ V Z]"}
++ ExemplarCharactersNumbers{"[ , % ‰ + − 0 1 2 3 4 5 6 7 8 9]"}
++ ExemplarCharactersPunctuation{"[\\- ‐ ‑ – — , ; \\: ! ? . … ' ‘ ’ \u0022 “ ” ( ) \\[ \\] \\{ \\} /]"}
++ NumberElements{
++ latn{
++ symbols{
++ decimal{","}
++ group{" "}
++ }
++ }
+ }
+- MonthNames {
+- "januaro",
+- "februaro",
+- "marto",
+- "aprilo",
+- "majo",
+- "junio",
+- "julio",
+- "a\u016dgusto",
+- "septembro",
+- "oktobro",
+- "novembro",
+- "decembro",
++ calendar{
++ generic{
++ DateTimePatterns{
++ "H-'a' 'horo' 'kaj' m:ss zzzz",
++ "HH:mm:ss z",
++ "HH:mm:ss",
++ "HH:mm",
++ "EEEE, d-'a' 'de' MMMM y G",
++ "G y-MMMM-dd",
++ "G y-MMM-dd",
++ "GGGGG y-MM-dd",
++ "{1} {0}",
++ "{1} {0}",
++ "{1} {0}",
++ "{1} {0}",
++ "{1} {0}",
++ }
++ DateTimeSkeletons{
++ "Hmsszzzz",
++ "HHmmssz",
++ "HHmmss",
++ "HHmm",
++ "GyMMMMEEEEd",
++ "GyMMMMdd",
++ "GyMMMdd",
++ "GGGGGyMMdd",
++ }
++ }
++ gregorian{
++ AmPmMarkers{
++ "atm",
++ "ptm",
++ }
++ AmPmMarkersAbbr{
++ "atm",
++ "ptm",
++ }
++ DateTimePatterns{
++ "H-'a' 'horo' 'kaj' m:ss zzzz",
++ "HH:mm:ss z",
++ "HH:mm:ss",
++ "HH:mm",
++ "EEEE, d-'a' 'de' MMMM y",
++ "y-MMMM-dd",
++ "y-MMM-dd",
++ "yy-MM-dd",
++ "{1} {0}",
++ "{1} {0}",
++ "{1} {0}",
++ "{1} {0}",
++ "{1} {0}",
++ }
++ DateTimeSkeletons{
++ "Hmsszzzz",
++ "HHmmssz",
++ "HHmmss",
++ "HHmm",
++ "yMMMMEEEEd",
++ "yMMMMdd",
++ "yMMMdd",
++ "yyMMdd",
++ }
++ dayNames{
++ format{
++ abbreviated{
++ "di",
++ "lu",
++ "ma",
++ "me",
++ "ĵa",
++ "ve",
++ "sa",
++ }
++ wide{
++ "dimanĉo",
++ "lundo",
++ "mardo",
++ "merkredo",
++ "ĵaŭdo",
++ "vendredo",
++ "sabato",
++ }
++ }
++ stand-alone{
++ wide{
++ "dimanĉo",
++ "lundo",
++ "mardo",
++ "merkredo",
++ "ĵaŭdo",
++ "vendredo",
++ "sabato",
++ }
++ }
++ }
++ eras{
++ abbreviated{
++ "aK",
++ "pK",
++ }
++ narrow{
++ "aK",
++ "pK",
++ }
++ narrow%variant{
++ "aK",
++ "pK",
++ }
++ wide{
++ "aK",
++ "pK",
++ }
++ }
++ monthNames{
++ format{
++ abbreviated{
++ "jan",
++ "feb",
++ "mar",
++ "apr",
++ "maj",
++ "jun",
++ "jul",
++ "aŭg",
++ "sep",
++ "okt",
++ "nov",
++ "dec",
++ }
++ wide{
++ "januaro",
++ "februaro",
++ "marto",
++ "aprilo",
++ "majo",
++ "junio",
++ "julio",
++ "aŭgusto",
++ "septembro",
++ "oktobro",
++ "novembro",
++ "decembro",
++ }
++ }
++ stand-alone{
++ wide{
++ "januaro",
++ "februaro",
++ "marto",
++ "aprilo",
++ "majo",
++ "junio",
++ "julio",
++ "aŭgusto",
++ "septembro",
++ "oktobro",
++ "novembro",
++ "decembro",
++ }
++ }
++ }
++ }
+ }
+- NumberElements {
+- ",",
+- "\u00a0",
+- ";",
+- "%",
+- "0",
+- "#",
+- "-",
+- "E",
+- "\u2030",
+- "\u221E",
+- "\uFFFD",
++ Languages{
++ aa{"afara"}
++ ab{"abĥaza"}
++ af{"afrikansa"}
++ am{"amhara"}
++ ar{"araba"}
++ as{"asama"}
++ ay{"ajmara"}
++ az{"azerbajĝana"}
++ ba{"baŝkira"}
++ be{"belorusa"}
++ bg{"bulgara"}
++ bi{"bislamo"}
++ bn{"bengala"}
++ bo{"tibeta"}
++ br{"bretona"}
++ bs{"bosnia"}
++ ca{"kataluna"}
++ co{"korsika"}
++ cs{"ĉeĥa"}
++ cy{"kimra"}
++ da{"dana"}
++ de{"germana"}
++ dv{"mahla"}
++ dz{"dzonko"}
++ efi{"ibibioefika"}
++ el{"greka"}
++ en{"angla"}
++ eo{"esperanto"}
++ es{"hispana"}
++ et{"estona"}
++ eu{"eŭska"}
++ fa{"persa"}
++ fi{"finna"}
++ fil{"filipina"}
++ fj{"fiĝia"}
++ fo{"feroa"}
++ fr{"franca"}
++ fy{"frisa"}
++ ga{"irlanda"}
++ gd{"gaela"}
++ gl{"galega"}
++ gn{"gvarania"}
++ gu{"guĝarata"}
++ ha{"haŭsa"}
++ haw{"havaja"}
++ he{"hebrea"}
++ hi{"hinda"}
++ hr{"kroata"}
++ ht{"haitia kreola"}
++ hu{"hungara"}
++ hy{"armena"}
++ ia{"interlingvao"}
++ id{"indonezia"}
++ ie{"okcidentalo"}
++ ik{"eskima"}
++ is{"islanda"}
++ it{"itala"}
++ iu{"inuita"}
++ ja{"japana"}
++ jv{"java"}
++ ka{"kartvela"}
++ kk{"kazaĥa"}
++ kl{"gronlanda"}
++ km{"kmera"}
++ kn{"kanara"}
++ ko{"korea"}
++ ks{"kaŝmira"}
++ ku{"kurda"}
++ ky{"kirgiza"}
++ la{"latino"}
++ lb{"luksemburga"}
++ ln{"lingala"}
++ lo{"laŭa"}
++ lt{"litova"}
++ lv{"latva"}
++ mg{"malagasa"}
++ mi{"maoria"}
++ mk{"makedona"}
++ ml{"malajalama"}
++ mn{"mongola"}
++ mr{"marata"}
++ ms{"malaja"}
++ mt{"malta"}
++ my{"birma"}
++ na{"naura"}
++ nb{"dannorvega"}
++ ne{"nepala"}
++ nl{"nederlanda"}
++ nn{"novnorvega"}
++ no{"norvega"}
++ oc{"okcitana"}
++ om{"oroma"}
++ or{"orijo"}
++ pa{"panĝaba"}
++ pl{"pola"}
++ ps{"paŝtoa"}
++ pt{"portugala"}
++ pt_BR{"brazilportugala"}
++ pt_PT{"eŭropportugala"}
++ qu{"keĉua"}
++ rm{"romanĉa"}
++ rn{"burunda"}
++ ro{"rumana"}
++ ru{"rusa"}
++ rw{"ruanda"}
++ sa{"sanskrito"}
++ sd{"sinda"}
++ sg{"sangoa"}
++ sh{"serbo-Kroata"}
++ si{"sinhala"}
++ sk{"slovaka"}
++ sl{"slovena"}
++ sm{"samoa"}
++ sn{"ŝona"}
++ so{"somala"}
++ sq{"albana"}
++ sr{"serba"}
++ ss{"svazia"}
++ st{"sota"}
++ su{"sunda"}
++ sv{"sveda"}
++ sw{"svahila"}
++ ta{"tamila"}
++ te{"telugua"}
++ tg{"taĝika"}
++ th{"taja"}
++ ti{"tigraja"}
++ tk{"turkmena"}
++ tl{"tagaloga"}
++ tlh{"klingona"}
++ tn{"cvana"}
++ to{"tongaa"}
++ tr{"turka"}
++ ts{"conga"}
++ tt{"tatara"}
++ ug{"ujgura"}
++ uk{"ukraina"}
++ und{"nekonata lingvo"}
++ ur{"urduo"}
++ uz{"uzbeka"}
++ vi{"vjetnama"}
++ vo{"volapuko"}
++ wo{"volofa"}
++ xh{"ksosa"}
++ yi{"jida"}
++ yo{"joruba"}
++ za{"ĝuanga"}
++ zh{"ĉina"}
++ zh_Hans{"ĉina simpligita"}
++ zh_Hant{"ĉina tradicia"}
++ zu{"zulua"}
++ zxx{"nelingvaĵo"}
+ }
+-// ShortLanguage { "epo" }
+- localPatternChars { "GjMtkHmslTDUSnahKzJd" }
+-// LocaleScript{
+-// "Latn", // ISO 15924 Name
+-// }
+- ExemplarCharacters { "[a-z \u016d \u0109 \u011d \u0125 \u0135 \u015d]" }
+- //------------------------------------------------------------
+- // Rule Based Number Format Support
+- //------------------------------------------------------------
+-
+-// data from 'Esperanto-programita 1' courtesy of Markus Scherer
+-
+- SpelloutRules {
+- "-x: minus >>;\n"
+- "x.x: << komo >>;\n"
+- "nulo; unu; du; tri; kvar; kvin; ses; sep; ok; na\u016d;\n"
+- "10: dek[ >>];\n"
+- "20: <>];\n"
+- "100: cent[ >>];\n"
+- "200: <>];\n"
+- "1000: mil[ >>];\n"
+- "2000: <>];\n"
+- "10000: dekmil[ >>];\n"
+- "11000>: << mil[ >>];\n"
+- "1,000,000: miliono[ >>];\n"
+- "2,000,000: << milionoj[ >>];\n"
+- "1,000,000,000: miliardo[ >>];\n"
+- "2,000,000,000: << miliardoj[ >>];\n"
+- "1,000,000,000,000: biliono[ >>];\n"
+- "2,000,000,000,000: << bilionoj[ >>];\n"
+- "1,000,000,000,000,000: =#,##0=;\n"
++ RBNFRules{
++ SpelloutRules{
++ "%spellout-numbering-year:",
++ "x.x: =0.0=;",
++ "0: =%spellout-numbering=;",
++ "%spellout-numbering:",
++ "0: =%spellout-cardinal=;",
++ "%spellout-cardinal:",
++ "-x: minus >>;",
++ "x.x: << komo >>;",
++ "0: nulo;",
++ "1: unu;",
++ "2: du;",
++ "3: tri;",
++ "4: kvar;",
++ "5: kvin;",
++ "6: ses;",
++ "7: sep;",
++ "8: ok;",
++ "9: na\u016D;",
++ "10: dek[ >>];",
++ "20: <>];",
++ "100: cent[ >>];",
++ "200: <>];",
++ "1000: mil[ >>];",
++ "2000: << mil[ >>];",
++ "1000000: miliono[ >>];",
++ "2000000: << milionoj[ >>];",
++ "1000000000: miliardo[ >>];",
++ "2000000000: << miliardoj[ >>];",
++ "1000000000000: biliono[ >>];",
++ "2000000000000: << bilionoj[ >>];",
++ "1000000000000000: biliardo[ >>];",
++ "2000000000000000: << biliardoj[ >>];",
++ "1000000000000000000: =#,##0=;",
++ "%spellout-ordinal:",
++ "0: =%spellout-cardinal=a;",
++ }
+ }
+ }
+--
+2.41.0
diff --git a/SPECS/ocaml-camomile/ocaml-camomile.signatures.json b/SPECS/ocaml-camomile/ocaml-camomile.signatures.json
index c8658c5f968..ef7c13bb31a 100644
--- a/SPECS/ocaml-camomile/ocaml-camomile.signatures.json
+++ b/SPECS/ocaml-camomile/ocaml-camomile.signatures.json
@@ -1,5 +1,5 @@
{
"Signatures": {
- "camomile-1.0.2.tar.gz": "2149ed1731141b29e0265e99493060eb552ac98938b031c4f496190ba97e85f6"
+ "camomile-2.0.0.tar.gz": "6bb421d0bb81594acb5dd902101a0609022d576fe373d956724fa60120bfd03d"
}
}
diff --git a/SPECS/ocaml-camomile/ocaml-camomile.spec b/SPECS/ocaml-camomile/ocaml-camomile.spec
index 6cc297f5480..e442ac3af14 100644
--- a/SPECS/ocaml-camomile/ocaml-camomile.spec
+++ b/SPECS/ocaml-camomile/ocaml-camomile.spec
@@ -3,22 +3,25 @@
Summary: Unicode library for OCaml
Name: ocaml-camomile
-Version: 1.0.2
-Release: 9%{?dist}
+Version: 2.0.0
+Release: 1%{?dist}
# Several files are MIT and UCD licensed, but the overall work is LGPLv2+
# and the LGPL/GPL supercedes compatible licenses.
# https://www.redhat.com/archives/fedora-legal-list/2008-March/msg00005.html
License: LGPLv2+
Vendor: Microsoft Corporation
Distribution: Azure Linux
-URL: https://github.com/yoriyuki/Camomile
-Source0: https://github.com/yoriyuki/Camomile/archive/refs/tags/%{version}.tar.gz#/camomile-%{version}.tar.gz
-
-BuildRequires: ocaml >= 3.12.1-12
-BuildRequires: ocaml-cppo
-BuildRequires: ocaml-dune
-BuildRequires: ocaml-findlib-devel
-BuildRequires: ocaml-ocamldoc
+URL: https://github.com/ocaml-community/Camomile
+Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/camomile-%{version}.tar.gz
+# Fix a licensing issue in EO Unicode files. Submitted but not
+# accepted upstream: https://github.com/yoriyuki/Camomile/pull/84
+Patch1: 0001-Camomile-locales-eo.txt-Fix-license-by-importing-dat.patch
+
+BuildRequires: ocaml >= 5.1.1
+BuildRequires: ocaml-camlp-streams-devel
+BuildRequires: ocaml-dune >= 3.4
+BuildRequires: ocaml-dune-site-devel
+BuildRequires: ocaml-stdlib-random-devel
# The base package requires the data files. Note that it is possible
# to install the data files on their own to support other packages
@@ -26,85 +29,81 @@ BuildRequires: ocaml-ocamldoc
# exactly this.
Requires: %{name}-data = %{version}-%{release}
+
%description
Camomile is a Unicode library for ocaml. Camomile provides Unicode
character type, UTF-8, UTF-16, UTF-32 strings, conversion to/from
about 200 encodings, collation and locale-sensitive case mappings, and
more.
+
%package devel
Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: ocaml-camlp-streams-devel%{?_isa}
+Requires: ocaml-dune-site-devel%{?_isa}
-Requires: %{name} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
+
%package data
Summary: Data files for %{name}
+BuildArch: noarch
+
%description data
The %{name}-data package contains data files for developing
applications that use %{name}.
+
%prep
-%setup -q -n Camomile-%{version}
+%autosetup -p1 -n Camomile-%{version}
+
%build
-# This avoids a stack overflow in the OCaml 4.05 compiler on POWER only.
+# This avoids a stack overflow in the OCaml compiler on POWER only.
+# Originally found with OCaml 4.05, still affecting 4.13.0.
+# https://github.com/yoriyuki/Camomile/issues/39
%ifarch %{power64}
ulimit -Hs 65536
ulimit -Ss 65536
%endif
-dune build --verbose --profile release
+%dune_build
%install
-dune install \
- --destdir=%{buildroot} \
- --libdir=%{_libdir}/ocaml \
- --verbose \
- --profile release
+%dune_install
-# Remove /usr/doc because we will use %%doc rules instead.
-rm -rf %{buildroot}%{_prefix}/doc
+# The data files are in their own package
+sed -i '\@%{_datadir}@d' .ofiles
-# Install the *.mli files by hand.
-cp _build/install/default/lib/camomile/library/*.mli %{buildroot}%{_libdir}/ocaml/camomile/
%check
-# Broken in 1.0.2.
-# https://github.com/yoriyuki/Camomile/issues/82
-#jbuilder runtest --profile release
+%dune_check
+
-%files
+%files -f .ofiles
%doc README.md CHANGES.md
%license LICENSE.md
-%{_libdir}/ocaml/camomile
-%ifarch %{ocaml_native_compiler}
-%exclude %{_libdir}/ocaml/camomile/*.a
-%exclude %{_libdir}/ocaml/camomile/*.cmxa
-%exclude %{_libdir}/ocaml/camomile/*.cmx
-%endif
-%exclude %{_libdir}/ocaml/camomile/*.mli
-%ifarch %{ocaml_native_compiler}
-%endif
-%files devel
+
+%files devel -f .ofiles-devel
%license LICENSE.md
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/camomile/*.a
-%{_libdir}/ocaml/camomile/*.cmxa
-%{_libdir}/ocaml/camomile/*.cmx
-%endif
-%{_libdir}/ocaml/camomile/*.mli
+
%files data
%license LICENSE.md
%{_datadir}/camomile/
+
%changelog
+* Fri May 03 2024 Mykhailo Bykhovtsev - 2.0.0-1
+- Converted spec file to match with Fedora 41.
+- Upgraded to version 2.0.0
+
* Thu Mar 31 2022 Pawel Winogrodzki - 1.0.2-9
- Cleaning-up spec. License verified.
diff --git a/SPECS/ocaml-cinaps/ocaml-cinaps.spec b/SPECS/ocaml-cinaps/ocaml-cinaps.spec
index faf95842c5b..ab233621ac8 100644
--- a/SPECS/ocaml-cinaps/ocaml-cinaps.spec
+++ b/SPECS/ocaml-cinaps/ocaml-cinaps.spec
@@ -1,16 +1,9 @@
%global srcname cinaps
-# TESTING NOTE: The ppx_jane module is needed to run the tests. However,
-# ppx_jane transitively requires this module. Therefore, we cannot run the
-# tests at all until we are able to add ppx_jane.
-%ifnarch %{ocaml_native_compiler}
-%global debug_package %{nil}
-%endif
-
Summary: Trivial Metaprogramming tool using the OCaml toplevel
Name: ocaml-%{srcname}
Version: 0.15.1
-Release: 3%{?dist}
+Release: 4%{?dist}
License: MIT
Vendor: Microsoft Corporation
Distribution: Azure Linux
@@ -18,10 +11,14 @@ URL: https://github.com/ocaml-ppx/%{srcname}
Source0: %{url}/archive/v%{version}/%{srcname}-%{version}.tar.gz
BuildRequires: help2man
-BuildRequires: ocaml >= 4.04.0
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-dune >= 2.0.0
BuildRequires: ocaml-re-devel >= 1.8.0
+%if %{with_check}
+BuildRequires: ocaml-ppx-jane-devel
+%endif
+
%description
Cinaps is a trivial Metaprogramming tool for OCaml using the OCaml
toplevel.
@@ -38,7 +35,6 @@ be used to generate static code that is independent of the system.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
-Requires: ocaml-re-devel%{?_isa}
%description devel
The %{name}-devel package contains libraries and signature files for
@@ -48,52 +44,31 @@ developing applications that use %{name}.
%autosetup -n %{srcname}-%{version}
%build
-dune build
+%dune_build
%install
-dune install --destdir=%{buildroot}
-
-# We install the documentation with the doc macro
-rm -fr %{buildroot}%{_prefix}/doc
-
-%ifarch %{ocaml_native_compiler}
-# Add missing executable bits
-chmod a+x %{buildroot}%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cmxs
-%endif
+%dune_install
# Generate the man page
mkdir -p %{buildroot}%{_mandir}/man1
help2man -N --version-string=%{version} %{buildroot}%{_bindir}/cinaps > \
%{buildroot}%{_mandir}/man1/cinaps.1
-%files
+%check
+%dune_check
+
+%files -f .ofiles
%doc README.org
%license LICENSE.md
-%{_bindir}/cinaps
%{_mandir}/man1/cinaps.1*
-%dir %{_libdir}/ocaml/%{srcname}/
-%dir %{_libdir}/ocaml/%{srcname}/runtime/
-%{_libdir}/ocaml/%{srcname}/META
-%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cma
-%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cmxs
-%endif
-%files devel
-%{_libdir}/ocaml/%{srcname}/dune-package
-%{_libdir}/ocaml/%{srcname}/opam
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.a
-%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cmx
-%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cmxa
-%endif
-%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cmt
-%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.cmti
-%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.ml
-%{_libdir}/ocaml/%{srcname}/runtime/cinaps_runtime.mli
+%files devel -f .ofiles-devel
%changelog
+* Fri May 03 2024 Mykhailo Bykhovtsev - 0.15.1-4
+- Converted spec file to match with Fedora 41.
+- Rebuild with ocaml >= 5.1.1
+
* Thu Mar 31 2022 Pawel Winogrodzki - 0.15.1-3
- Cleaning-up spec. License verified.
diff --git a/SPECS/ocaml-compiler-libs-janestreet/ocaml-compiler-libs-janestreet.spec b/SPECS/ocaml-compiler-libs-janestreet/ocaml-compiler-libs-janestreet.spec
index 1e6120e8a15..8b161c2b504 100644
--- a/SPECS/ocaml-compiler-libs-janestreet/ocaml-compiler-libs-janestreet.spec
+++ b/SPECS/ocaml-compiler-libs-janestreet/ocaml-compiler-libs-janestreet.spec
@@ -1,113 +1,57 @@
%global srcname ocaml-compiler-libs
-%ifnarch %{ocaml_native_compiler}
+%ifarch %{ocaml_native_compiler}
+%undefine _debugsource_packages
+%else
%global debug_package %{nil}
%endif
-%bcond_with docs
-
Summary: OCaml compiler libraries repackaged
Name: %{srcname}-janestreet
Version: 0.12.4
-Release: 1%{?dist}
+Release: 2%{?dist}
License: MIT
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://github.com/janestreet/%{srcname}
Source0: %{url}/archive/v%{version}/%{srcname}-%{version}.tar.gz
-BuildRequires: ocaml >= 4.04.1
-BuildRequires: ocaml-dune >= 1.5.1
-
-%if %{with docs}
-BuildRequires: ocaml-odoc
-%endif
+BuildRequires: ocaml >= 5.1.1
+BuildRequires: ocaml-dune >= 2.8
%description
This package exposes the OCaml compiler libraries repackaged under
the toplevel names Ocaml_common, Ocaml_bytecomp, Ocaml_optcomp, etc.
-
+
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
-
+
%description devel
The %{name}-devel package contains libraries and
signature files for developing applications that use
%{name}.
-
-%if %{with docs}
-%package doc
-Summary: Documentation for %{name}
-BuildArch: noarch
-
-%description doc
-Documentation for %{name}.
-%endif
-
+
%prep
-%autosetup -n %{srcname}-%{version}
-
+%autosetup -n ocaml-compiler-libs-%{version}
+
%build
-dune build %{?_smp_mflags}
-%if %{with docs}
-dune build %{?_smp_mflags} @doc
-%endif
+%dune_build
%install
-dune install --destdir=%{buildroot}
-
-# We do not want the dune markers
-%if %{with docs}
-find _build/default/_doc/_html -name .dune-keep -delete
-%endif
+%dune_install
-# We do not want the ml files
-find %{buildroot}%{_libdir}/ocaml -name \*.ml -delete
-
-# We install the documentation with the doc macro
-rm -fr %{buildroot}%{_prefix}/doc
-
-%ifarch %{ocaml_native_compiler}
-# Add missing executable bits
-find %{buildroot}%{_libdir}/ocaml -name \*.cmxs -exec chmod a+x {} \+
-%endif
-
-%files
+%files -f .ofiles
%doc README.org
%license LICENSE.md
-%dir %{_libdir}/ocaml/%{srcname}/
-%dir %{_libdir}/ocaml/%{srcname}/bytecomp/
-%dir %{_libdir}/ocaml/%{srcname}/common/
-%dir %{_libdir}/ocaml/%{srcname}/optcomp/
-%dir %{_libdir}/ocaml/%{srcname}/shadow/
-%dir %{_libdir}/ocaml/%{srcname}/toplevel/
-%{_libdir}/ocaml/%{srcname}/META
-%{_libdir}/ocaml/%{srcname}/*/*.cma
-%{_libdir}/ocaml/%{srcname}/*/*.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/*/*.cmxs
-%endif
-
-%files devel
-%{_libdir}/ocaml/%{srcname}/dune-package
-%{_libdir}/ocaml/%{srcname}/opam
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/*/*.a
-%{_libdir}/ocaml/%{srcname}/*/*.cmx
-%{_libdir}/ocaml/%{srcname}/*/*.cmxa
-%endif
-%{_libdir}/ocaml/%{srcname}/*/*.cmt
-
-%if %{with docs}
-%files doc
-%doc _build/default/_doc/_html/
-%doc _build/default/_doc/_mlds/
-%doc _build/default/_doc/_odoc/
-%license LICENSE.md
-%endif
+
+%files devel -f .ofiles-devel
%changelog
+* Fri May 03 2024 Mykhailo Bykhovtsev - 0.12.4-2
+- Converted spec file to match with Fedora 41.
+- Rebuild for OCaml 5.1.1 and dune >= 2.8
+
* Mon Nov 06 2023 CBL-Mariner Servicing Account - 0.12.4-1
- Auto-upgrade to 0.12.4 - Azure Linux 3.0 - package upgrades
diff --git a/SPECS/ocaml-cppo/ocaml-cppo.signatures.json b/SPECS/ocaml-cppo/ocaml-cppo.signatures.json
index 8b73c4c4568..b0b634ec486 100644
--- a/SPECS/ocaml-cppo/ocaml-cppo.signatures.json
+++ b/SPECS/ocaml-cppo/ocaml-cppo.signatures.json
@@ -1,5 +1,5 @@
{
"Signatures": {
- "ocaml-cppo-1.6.6.tar.gz": "e284f5399e71d953c1b753905f38ed423ca7d70bbb16082fdee9cd783a5cec1b"
+ "ocaml-cppo-1.6.9.tar.gz": "16036d85c11d330a7c8b56f4e071d6bbe86d8937c89d3d79f6eef0e38bdda26a"
}
}
diff --git a/SPECS/ocaml-cppo/ocaml-cppo.spec b/SPECS/ocaml-cppo/ocaml-cppo.spec
index 5f2ee4cb39f..988f437eff9 100644
--- a/SPECS/ocaml-cppo/ocaml-cppo.spec
+++ b/SPECS/ocaml-cppo/ocaml-cppo.spec
@@ -8,22 +8,18 @@
Summary: Equivalent of the C preprocessor for OCaml programs
Name: ocaml-cppo
-Version: 1.6.6
-Release: 5%{?dist}
+Version: 1.6.9
+Release: 1%{?dist}
License: BSD
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://github.com/ocaml-community/cppo
-Source0: https://github.com/ocaml-community/cppo/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
+Source0: %{url}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
-BuildRequires: ocaml >= 3.10.0
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-dune
BuildRequires: ocaml-findlib
-BuildRequires: ocaml-ocamlbuild-devel
-
-%if !%{opt}
-Requires: ocaml >= 3.10.0
-%endif
+BuildRequires: ocaml-ocamlbuild
%description
Cppo is an equivalent of the C preprocessor targeted at the OCaml
@@ -39,28 +35,46 @@ The implementation of cppo relies on the standard library of OCaml and
on the standard parsing tools Ocamllex and Ocamlyacc, which contribute
to the robustness of cppo across OCaml versions.
+
+%package ocamlbuild
+Summary: Preprocessing plugin for ocamlbuild
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: ocaml-ocamlbuild%{?_isa}
+# There is no devel subpackage because this package IS for development purposes
+
+
+%description ocamlbuild
+This package contains a plugin for ocamlbuild that enables calling cppo
+at build time. To use it, call ocamlbuild with the argument
+`-plugin-tag package(cppo_ocamlbuild)`.
+
%prep
-%setup -q -n %{libname}-%{version}
-sed -i.add-debuginfo \
- 's/ocamlopt/ocamlopt -g/;s/ocamlc \(-[co]\)/ocamlc -g \1/' \
- Makefile
+%autosetup -n cppo-%{version}
%build
-make %{?_smp_mflags} all
+%dune_build
%install
-install -d %{buildroot}%{_bindir}
-install -p _build/install/default/bin/cppo %{buildroot}%{_bindir}/
+%dune_install
%check
-make test
+%dune_check
%files
%license LICENSE.md
-%doc Changes README.md
+%doc Changes.md README.md
%{_bindir}/cppo
+%{_libdir}/ocaml/cppo
+
+
+%files ocamlbuild
+%{_libdir}/ocaml/cppo_ocamlbuild/
%changelog
+* Fri May 03 2024 Mykhailo Bykhovtsev - 1.6.9-1
+- Converted spec file to match with Fedora 41.
+- Upgrade to 1.6.9
+
* Thu Mar 31 2022 Pawel Winogrodzki - 1.6.6-5
- Cleaning-up spec. License verified.
diff --git a/SPECS/ocaml-csexp/07eb898.patch b/SPECS/ocaml-csexp/07eb898.patch
new file mode 100644
index 00000000000..77228c0bff4
--- /dev/null
+++ b/SPECS/ocaml-csexp/07eb898.patch
@@ -0,0 +1,23 @@
+From 07eb8988452ad51a09d0ab7379d73a87674aba6e Mon Sep 17 00:00:00 2001
+From: Rudi Grinberg
+Date: Tue, 16 May 2023 11:42:17 +0100
+Subject: [PATCH] fix: typo in optimization annotation (#28)
+
+Signed-off-by: Rudi Grinberg
+---
+ src/csexp.ml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/csexp.ml b/src/csexp.ml
+index 78bfa2b..2b2270d 100644
+--- a/src/csexp.ml
++++ b/src/csexp.ml
+@@ -233,7 +233,7 @@ module Make (Sexp : Sexp) = struct
+ match Stack.add_token x stack with
+ | exception Parse_error msg -> Error (pos, msg)
+ | stack -> k s (pos + 1) len lexer stack)
+- [@@inlined always]
++ [@@inline always]
+
+ let parse_string =
+ let rec loop s pos len lexer stack =
diff --git a/SPECS/ocaml-csexp/ocaml-csexp.signatures.json b/SPECS/ocaml-csexp/ocaml-csexp.signatures.json
index e0f411cbe1f..0898e6af80f 100644
--- a/SPECS/ocaml-csexp/ocaml-csexp.signatures.json
+++ b/SPECS/ocaml-csexp/ocaml-csexp.signatures.json
@@ -1,5 +1,5 @@
{
"Signatures": {
- "csexp-1.3.2.tbz": "f21f427b277f07e8bfd050e00c640a5893c1bf4b689147640fa383255dcf1c4a"
+ "csexp-1.5.2.tar.gz": "de3fda861ec8210a404fcb76afa162b08ed1cd11228645c78b53e1f82b24e236"
}
}
diff --git a/SPECS/ocaml-csexp/ocaml-csexp.spec b/SPECS/ocaml-csexp/ocaml-csexp.spec
index 2db6e9beea1..393232c9212 100644
--- a/SPECS/ocaml-csexp/ocaml-csexp.spec
+++ b/SPECS/ocaml-csexp/ocaml-csexp.spec
@@ -16,23 +16,21 @@
Summary: Parsing and printing of S-expressions in canonical form
Name: ocaml-%{srcname}
-Version: 1.3.2
-Release: 4%{?dist}
+Version: 1.5.2
+Release: 1%{?dist}
License: MIT
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://github.com/ocaml-dune/csexp
-Source0: %{url}/releases/download/%{version}/%{srcname}-%{version}.tbz
-# Depend on Stdlib.Result instead of ocaml-result. See comment above.
-# This patch is not appropriate for upstream, which needs to keep compatibility
-# with older OCaml versions.
-Patch0: %{name}-result.patch
+Source0: %{url}/archive/refs/tags/%{version}.tar.gz#/%{srcname}-%{version}.tar.gz
+# Fix an optimization annotation
+Patch0: 07eb898.patch
-BuildRequires: ocaml >= 4.02.3
+BuildRequires: ocaml >= 4.03.0
%if %{with dune}
BuildRequires: ocaml-dune >= 1.11
-BuildRequires: ocaml-odoc
-BuildRequires: ocaml-result-devel >= 1.5
+%else
+BuildRequires: ocaml-rpm-macros
%endif
%description
@@ -43,68 +41,47 @@ binary encoding of S-expressions.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
-%if %{with dune}
-Requires: ocaml-result-devel%{?_isa}
-%endif
%description devel
The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
%prep
-%autosetup -N -n %{srcname}-%{version}
-%if %{without dune}
-%autopatch -p1
-%endif
+%autosetup -n %{srcname}-%{version} -p1
%build
%if %{with dune}
-dune build %{?_smp_mflags} --display=verbose @install
-dune build %{?_smp_mflags} @doc
+%dune_build
%else
-OFLAGS="-strict-sequence -strict-formats -short-paths -keep-locs -g -opaque"
+OFLAGS="-w -40 -g"
OCFLAGS="$OFLAGS -bin-annot"
cd src
-ocamlc $OCFLAGS -output-obj csexp.mli
-ocamlc $OCFLAGS -a -o csexp.cma csexp.ml
+ocamlc $OCFLAGS -no-alias-deps -o csexp.cmi -c -intf csexp.mli
+ocamlc $OCFLAGS -intf-suffix .ml -no-alias-deps -o csexp.cmo -c -impl csexp.ml
+ocamlc $OFLAGS -a -o csexp.cma csexp.cmo
%ifarch %{ocaml_native_compiler}
-ocamlopt $OFLAGS -ccopt "%{optflags}" -cclib "$RPM_LD_FLAGS" -a \
- -o csexp.cmxa csexp.ml
-ocamlopt $OFLAGS -ccopt "%{optflags}" -cclib "$RPM_LD_FLAGS" -shared \
- -o csexp.cmxs csexp.ml
+ocamlopt $OFLAGS -intf-suffix .ml -no-alias-deps -o csexp.cmx -c -impl csexp.ml
+ocamlopt $OFLAGS -a -o csexp.cmxa csexp.cmx
+ocamlopt $OFLAGS -shared -linkall -I . -o csexp.cmxs csexp.cmxa
%endif
-cd -
%endif
%install
%if %{with dune}
-dune install --destdir=%{buildroot}
-
-# We do not want the dune markers
-find _build/default/_doc/_html -name .dune-keep -delete
-
-# We do not want the ml files
-find %{buildroot}%{_libdir}/ocaml -name \*.ml -delete
-
-# We install the documentation with the doc macro
-rm -fr %{buildroot}%{_prefix}/doc
-
-%ifarch %{ocaml_native_compiler}
-# Add missing executable bits
-find %{buildroot}%{_libdir}/ocaml -name \*.cmxs -exec chmod a+x {} \+
-%endif
+%dune_install
%else
# Install without dune. See comment at the top.
-mkdir -p %{buildroot}%{_libdir}/ocaml/%{srcname}
-cp -p src/csexp.{cma,cmi,cmt,cmti,mli} %{buildroot}%{_libdir}/ocaml/%{srcname}
+mkdir -p %{buildroot}%{ocamldir}/csexp
+cp -p src/csexp.{cma,cmi,cmt,cmti,mli} %{buildroot}%{ocamldir}/csexp
%ifarch %{ocaml_native_compiler}
-cp -p src/csexp.{a,cmx,cmxa,cmxs} %{buildroot}%{_libdir}/ocaml/%{srcname}
+cp -p src/csexp.{a,cmx,cmxa,cmxs} %{buildroot}%{ocamldir}/csexp
%endif
-cp -p csexp.opam %{buildroot}%{_libdir}/ocaml/%{srcname}/opam
+cp -p csexp.opam %{buildroot}%{ocamldir}/csexp/opam
-cat >> %{buildroot}%{_libdir}/ocaml/%{srcname}/META << EOF
+cat >> %{buildroot}%{ocamldir}/csexp/META << EOF
version = "%{version}"
description = "Parsing and printing of S-expressions in canonical form"
+requires = ""
archive(byte) = "csexp.cma"
%ifarch %{ocaml_native_compiler}
archive(native) = "csexp.cmxa"
@@ -115,10 +92,31 @@ plugin(native) = "csexp.cmxs"
%endif
EOF
-cat >> %{buildroot}%{_libdir}/ocaml/%{srcname}/dune-package << EOF
-(lang dune 2.5)
+cat >> %{buildroot}%{ocamldir}/csexp/dune-package << EOF
+(lang dune 3.12)
(name csexp)
(version %{version})
+(sections (lib .) (libexec .) (doc ../../doc/csexp))
+(files
+ (lib
+ (META
+ csexp.a
+ csexp.cma
+ csexp.cmi
+ csexp.cmt
+ csexp.cmti
+ csexp.cmx
+%ifarch %{ocaml_native_compiler}
+ csexp.cmxa
+%endif
+ csexp.ml
+ csexp.mli
+ dune-package
+ opam))
+%ifarch %{ocaml_native_compiler}
+ (libexec (csexp.cmxs))
+%endif
+ (doc (CHANGES.md LICENSE.md README.md)))
(library
(name csexp)
(kind normal)
@@ -137,40 +135,25 @@ cat >> %{buildroot}%{_libdir}/ocaml/%{srcname}/dune-package << EOF
(modes byte)
%endif
(modules
- (singleton (name Csexp) (obj_name csexp) (visibility public) (impl) (intf))))
+ (singleton
+ (obj_name csexp)
+ (visibility public)
+ (source (path Csexp) (intf (path csexp.mli)) (impl (path csexp.ml))))))
EOF
+%ocaml_files
%endif
-# Cannot do this until ocaml-ppx-expect is available.
-#%%if %%{with dune}
-#%%check
-#dune runtest
-#%%endif
-
-%files
+%files -f .ofiles
%doc README.md
%license LICENSE.md
-%dir %{_libdir}/ocaml/%{srcname}/
-%{_libdir}/ocaml/%{srcname}/META
-%{_libdir}/ocaml/%{srcname}/*.cma
-%{_libdir}/ocaml/%{srcname}/*.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/*.cmxs
-%endif
-%files devel
-%{_libdir}/ocaml/%{srcname}/dune-package
-%{_libdir}/ocaml/%{srcname}/opam
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/*.a
-%{_libdir}/ocaml/%{srcname}/*.cmx
-%{_libdir}/ocaml/%{srcname}/*.cmxa
-%endif
-%{_libdir}/ocaml/%{srcname}/*.cmt
-%{_libdir}/ocaml/%{srcname}/*.cmti
-%{_libdir}/ocaml/%{srcname}/*.mli
+%files devel -f .ofiles-devel
%changelog
+* Tue Apr 30 2024 Mykhailo Bykhovtsev - 1.5.2-4
+- Converted spec file to match with Fedora 41.
+- Upgraded to 1.5.2.
+
* Thu Mar 31 2022 Pawel Winogrodzki - 1.3.2-4
- Cleaning-up spec. License verified.
diff --git a/SPECS/ocaml-dune/ocaml-dune-debuginfo.patch b/SPECS/ocaml-dune/ocaml-dune-debuginfo.patch
new file mode 100644
index 00000000000..8917c711c00
--- /dev/null
+++ b/SPECS/ocaml-dune/ocaml-dune-debuginfo.patch
@@ -0,0 +1,11 @@
+--- dune-3.11.0/src/dune_rules/dune_project.ml.orig 2023-09-23 19:52:10.552217543 -0600
++++ dune-3.11.0/src/dune_rules/dune_project.ml 2023-09-23 22:03:32.641347776 -0600
+@@ -455,7 +455,7 @@ let filename = "dune-project"
+ let opam_file_location_default ~lang:_ = `Relative_to_project
+ let implicit_transitive_deps_default ~lang:_ = true
+ let wrapped_executables_default ~(lang : Lang.Instance.t) = lang.version >= (2, 0)
+-let map_workspace_root_default ~(lang : Lang.Instance.t) = lang.version >= (3, 0)
++let map_workspace_root_default ~(lang : Lang.Instance.t) = false
+
+ let executables_implicit_empty_intf_default ~(lang : Lang.Instance.t) =
+ lang.version >= (3, 0)
diff --git a/SPECS/ocaml-dune/ocaml-dune-no-lwt.patch b/SPECS/ocaml-dune/ocaml-dune-no-lwt.patch
new file mode 100644
index 00000000000..51cabf221a2
--- /dev/null
+++ b/SPECS/ocaml-dune/ocaml-dune-no-lwt.patch
@@ -0,0 +1,31 @@
+--- dune-3.15.0/dune-file.orig 2024-04-03 03:29:40.000000000 -0600
++++ dune-3.15.0/dune-file 2024-04-05 08:48:56.083804773 -0600
+@@ -30,9 +30,6 @@
+ (copy dune-private-libs.opam.template ordering.opam.template))
+
+ (rule
+- (copy dune-private-libs.opam.template dune-rpc-lwt.opam.template))
+-
+-(rule
+ (copy dune-private-libs.opam.template fiber.opam.template))
+
+ (rule
+--- dune-3.15.0/dune-project.orig 2024-04-03 03:29:40.000000000 -0600
++++ dune-3.15.0/dune-project 2024-04-05 08:49:50.546090649 -0600
+@@ -149,16 +149,6 @@ understood by dune language."))
+ (description "Library to connect and control a running dune instance"))
+
+ (package
+- (name dune-rpc-lwt)
+- (synopsis "Communicate with dune using rpc and Lwt")
+- (depends
+- (dune-rpc (= :version))
+- (csexp (>= 1.5.0))
+- (lwt (>= 5.6.0))
+- base-unix)
+- (description "Specialization of dune-rpc to Lwt"))
+-
+-(package
+ (name dyn)
+ (synopsis "Dynamic type")
+ (depends
diff --git a/SPECS/ocaml-dune/ocaml-dune.signatures.json b/SPECS/ocaml-dune/ocaml-dune.signatures.json
index 331af07b72f..cb43ff13550 100644
--- a/SPECS/ocaml-dune/ocaml-dune.signatures.json
+++ b/SPECS/ocaml-dune/ocaml-dune.signatures.json
@@ -1,5 +1,5 @@
{
"Signatures": {
- "dune-2.8.5.tar.gz": "35ea0326509d6964b4b0f56b86e88cba9b3304f9b6e6322fe98257f73a57fc30"
+ "dune-3.15.2.tar.gz": "71192f16ce5cf9060963cf4419e4e902a95420773b9614b37446e707e6146b57"
}
}
diff --git a/SPECS/ocaml-dune/ocaml-dune.spec b/SPECS/ocaml-dune/ocaml-dune.spec
index 312f352d56e..a6ee341986b 100644
--- a/SPECS/ocaml-dune/ocaml-dune.spec
+++ b/SPECS/ocaml-dune/ocaml-dune.spec
@@ -7,8 +7,8 @@
Summary: A composable build system for OCaml
Name: ocaml-%{libname}
-Version: 2.8.5
-Release: 3%{?dist}
+Version: 3.15.2
+Release: 1%{?dist}
# Dune itself is MIT. Some bundled libraries have a different license:
# ISC:
# - vendor/cmdliner
@@ -22,34 +22,63 @@ Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://dune.build
Source0: https://github.com/ocaml/%{libname}/archive/%{version}/%{libname}-%{version}.tar.gz
+# When building without lwt, remove libraries that need it
+Patch0: %{name}-no-lwt.patch
+# Temporary workaround for broken debuginfo (rhbz#2168932)
+# See https://github.com/ocaml/dune/issues/6929
+Patch1: %{name}-debuginfo.patch
-BuildRequires: %{py3_dist sphinx-rtd-theme}
-BuildRequires: %{py3_dist sphinx}
+# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
+ExcludeArch: %{ix86}
+
+BuildRequires: emacs
BuildRequires: make
BuildRequires: ocaml >= 4.08
-BuildRequires: ocaml-csexp-devel >= 1.3.0
-BuildRequires: ocaml-findlib
+BuildRequires: ocaml-compiler-libs
+# ocaml-pp is empty if built without dune. And both ocaml-pp and ocaml-csexp are a circular depenedency with ocaml-dune
+BuildRequires: ocaml-pp-devel >= 1.2.0
+BuildRequires: ocaml-csexp-devel >= 1.5.0
+BuildRequires: ocaml-rpm-macros
+
+# Dune has vendored deps to avoid dependency cycles. Upstream deliberately
+# does not support unbundling these dependencies.
+# See https://github.com/ocaml/dune/issues/220
+Provides: bundled(ocaml-0install-solver) = 2.18
+Provides: bundled(ocaml-build-path-prefix-map) = 0.3
+Provides: bundled(ocaml-cmdliner) = 1.2.0
+Provides: bundled(ocaml-fiber) = 3.7.0
+Provides: bundled(ocaml-fmt) = 0.8.10
+Provides: bundled(ocaml-incremental-cycles) = 1e2030a5d5183d84561cde142eecca40e03db2a3
+Provides: bundled(ocaml-inotify) = 2.3
+Provides: bundled(ocaml-lwd) = 0.3
+Provides: bundled(ocaml-notty) = 0.2.3
+Provides: bundled(ocaml-opam) = 2.2.0~alpha2
+Provides: bundled(ocaml-opam-0install) = 0.4.3
+Provides: bundled(ocaml-opam-file-format) = 2.1.6
+Provides: bundled(ocaml-re) = 1.11.0
+Provides: bundled(ocaml-sha) = 1.15.4
+Provides: bundled(ocaml-spawn) = 0.15.1
+Provides: bundled(ocaml-uutf) = 1.0.3
-%if %{with emacs}
-BuildRequires: emacs
-%endif
-
-%if %{with menhir}
-# Required by tests.
-BuildRequires: ocaml-menhir
-%endif
-
-# Dune has vendored deps (ugh):
-# I'm not clear on how to unbundle them.
-# It seems to be unsupported upstream; the bootstrap process for dune
-# doesn't seem to be able to detect libraries installed systemwide.
-# https://github.com/ocaml/dune/issues/220
-Provides: bundled(ocaml-build-path-prefix-map) = 0.2
-Provides: bundled(ocaml-opam-file-format) = 2.0.0
-Provides: bundled(ocaml-cmdliner) = 1.0.4
-Provides: bundled(ocaml-re) = 1.9.0
Provides: dune = %{version}-%{release}
-Provides: jbuilder = %{version}-%{release}
+
+# This is needed for the dune-related RPM macros
+Requires: ocaml-rpm-macros
+
+# The dune rules module requires Toploop
+Requires: ocaml-compiler-libs%{?_isa}
+
+# Both packages install a binary named dune and an associated man page
+Conflicts: wdune
+
+# This can be removed when F42 reaches EOL
+Obsoletes: ocaml-fiber < 3.7.0
+Obsoletes: ocaml-fiber-devel < 3.7.0
+Provides: ocaml-fiber = %{version}-%{release}
+Provides: ocaml-fiber-devel = %{version}-%{release}
+
+# Install documentation in the main package doc directory
+%global _docdir_fmt %{name}
%description
Dune is a build system designed for OCaml/Reason projects only. It focuses
@@ -62,168 +91,405 @@ adapted to the open source world. It has matured over a long time and is used
daily by hundred of developers, which means that it is highly tested and
productive.
-%package devel
-Summary: Development files for %{name}
-License: MIT AND LGPLv2 AND LGPLv2 WITH exceptions AND ISC
-
-Requires: %{name}%{?isa} = %{version}-%{release}
-Requires: ocaml-csexp-devel%{?_isa}
-
-%description devel
-The %{name}-devel package contains libraries and
-signature files for developing applications that use %{name}.
-
-%package doc
-Summary: HTML documentation for %{name}
-License: MIT AND LGPLv2 AND LGPLv2 WITH exceptions AND ISC
-
-BuildArch: noarch
-
-Requires: %{name} = %{version}-%{release}
-
-%description doc
-HTML documentation for dune, a composable build system for OCaml.
-
-%if %{with emacs}
%package emacs
Summary: Emacs support for %{name}
License: ISC
+Requires: %{name} = %{version}-%{release}
+Requires: emacs-filesystem >= %{?_emacs_version}%{!?_emacs_version:0}
BuildArch: noarch
-Requires: %{name} = %{version}-%{release}
-
%description emacs
The %{name}-devel package contains Emacs integration with the dune build
system, a mode to edit dune files, and flymake support for dune files.
-%endif
-%prep
-%autosetup -n %{libname}-%{version} -p1
+## Dune libraries
+
+%package action-plugin
+Summary: API for writing dynamic dune actions
+License: MIT
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: %{name}-glob%{?_isa} = %{version}-%{release}
+
+%description action-plugin
+This experimental library provides an API for writing dynamic Dune
+actions. Dynamic dune actions do not need to declare their dependencies
+upfront; they are instead discovered automatically during the execution
+of the action.
+
+%package action-plugin-devel
+Summary: Development files for %{name}-action-plugin
+License: MIT
+Requires: %{name}-action-plugin%{?_isa} = %{version}-%{release}
+Requires: %{name}-glob-devel%{?_isa} = %{version}-%{release}
+
+%description action-plugin-devel
+The ocaml-dune-action-plugin-devel package contains libraries and
+signature files for developing applications that use
+ocaml-dune-action-plugin.
+
+%package build-info
+Summary: Embed build information in an executable
+License: MIT
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description build-info
+The build-info library allows access to information about how an
+executable was built, such as the version of the project at which it was
+built or the list of statically linked libraries with their versions.
+It supports reporting the version from a version control system during
+development to get a precise reference of when the executable was built.
+
+%package build-info-devel
+Summary: Development files for %{name}-build-info
+License: MIT
+Requires: %{name}-build-info%{?_isa} = %{version}-%{release}
+
+%description build-info-devel
+The ocaml-dune-build-info-devel package contains libraries and signature
+files for developing applications that use ocaml-dune-build-info.
+
+%package configurator
+Summary: Helper library for gathering system configuration
+License: MIT
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: ocaml-stdune%{?_isa} = %{version}-%{release}
+
+%description configurator
+Dune-configurator is a small library that helps write OCaml scripts that
+test features available on the system, in order to generate config.h
+files for instance. Among other things, dune-configurator allows one
+to:
+
+- test if a C program compiles
+- query pkg-config
+- import a #define from OCaml header files
+- generate a config.h file
+
+%package configurator-devel
+Summary: Development files for %{name}-configurator
+License: MIT
+Requires: %{name}-configurator%{?_isa} = %{version}-%{release}
+Requires: ocaml-stdune-devel%{?_isa} = %{version}-%{release}
+
+# This can be removed when F40 reaches EOL
+Obsoletes: %{name}-devel < 2.9.1-4
+Provides: %{name}-devel = %{version}-%{release}
+
+%description configurator-devel
+The ocaml-dune-configurator-devel package contains libraries and
+signature files for developing applications that use
+ocaml-dune-configurator.
+
+%package glob
+Summary: Parser and interpreter for dune language globs
+License: MIT
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: %{name}-private-libs%{?_isa} = %{version}-%{release}
+Requires: ocaml-stdune%{?_isa} = %{version}-%{release}
+
+%description glob
+Dune-glob provides a parser and interpreter for globs as understood by
+the dune language.
+
+%package glob-devel
+Summary: Development files for %{name}-glob
+License: MIT
+Requires: %{name}-glob%{?_isa} = %{version}-%{release}
+Requires: %{name}-private-libs-devel%{?_isa} = %{version}-%{release}
+Requires: ocaml-stdune-devel%{?_isa} = %{version}-%{release}
+
+%description glob-devel
+The ocaml-dune-glob-devel package contains libraries and signature files
+for developing applications that use ocaml-dune-glob.
+
+%package private-libs
+Summary: Private dune libraries
+License: MIT
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: ocaml-stdune%{?_isa} = %{version}-%{release}
+
+%description private-libs
+This package contains code that is shared between various dune-xxx
+packages. However, it is not meant for public consumption and provides
+no stability guarantee.
+
+%package private-libs-devel
+Summary: Development files for %{name}-private-libs
+License: MIT
+Requires: %{name}-private-libs%{?_isa} = %{version}-%{release}
+Requires: ocaml-dyn-devel%{?_isa} = %{version}-%{release}
+
+%description private-libs-devel
+The ocaml-dune-private-libs-devel package contains libraries and
+signature files for other dune packages. Do not use.
+
+%package rpc
+Summary: Communicate with dune using rpc
+License: MIT
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: ocaml-stdune%{?_isa} = %{version}-%{release}
+Requires: ocaml-xdg%{?_isa} = %{version}-%{release}
+
+%description rpc
+This package contains a library used to communicate with dune over rpc.
+
+%package rpc-devel
+Summary: Development files for %{name}-rpc
+License: MIT
+Requires: %{name}-rpc%{?_isa} = %{version}-%{release}
+Requires: ocaml-stdune-devel%{?_isa} = %{version}-%{release}
+Requires: ocaml-xdg-devel%{?_isa} = %{version}-%{release}
+
+%description rpc-devel
+The ocaml-dune-rpc-devel package contains libraries and signature files
+for developing applications that use ocaml-rpc.
+
+%package site
+Summary: Embed location information inside executables and libraries
+License: MIT
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: %{name}-private-libs%{?_isa} = %{version}-%{release}
+
+%description site
+This library enables embedding location information inside executables
+and libraries.
+
+%package site-devel
+Summary: Development files for %{name}-site
+License: MIT
+Requires: %{name}-site%{?_isa} = %{version}-%{release}
+Requires: %{name}-private-libs-devel%{?_isa} = %{version}-%{release}
+
+%description site-devel
+The ocaml-dune-site-devel package contains libraries and signature files
+for developing applications that use ocaml-dune-site.
+
+%package -n ocaml-chrome-trace
+Summary: Chrome trace event generation library
+License: MIT
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description -n ocaml-chrome-trace
+Library to output trace data to a file in Chrome's trace_event format.
+This format is compatible with chrome trace viewer (chrome://tracing).
+The trace viewer is part of the catapult project.
+
+%package -n ocaml-chrome-trace-devel
+Summary: Development files for ocaml-chrome-trace
+License: MIT
+Requires: ocaml-chrome-trace%{?_isa} = %{version}-%{release}
+
+%description -n ocaml-chrome-trace-devel
+The ocaml-dyn-devel package contains libraries and signature files for
+developing applications that use ocaml-dyn.
+
+%package -n ocaml-dyn
+Summary: Dynamic types
+License: MIT
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: ocaml-ordering%{?_isa} = %{version}-%{release}
+
+%description -n ocaml-dyn
+This library supports dynamic types in OCaml.
+
+%package -n ocaml-dyn-devel
+Summary: Development files for ocaml-dyn
+License: MIT
+Requires: ocaml-dyn%{?_isa} = %{version}-%{release}
+Requires: ocaml-ordering-devel%{?_isa} = %{version}-%{release}
+Requires: ocaml-pp-devel%{?_isa}
+
+%description -n ocaml-dyn-devel
+The ocaml-dyn-devel package contains libraries and signature files for
+developing applications that use ocaml-dyn.
+
+%package -n ocaml-ocamlc-loc
+Summary: Parse OCaml compiler output into structured form
+License: MIT
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: ocaml-dyn%{?_isa} = %{version}-%{release}
+
+%description -n ocaml-ocamlc-loc
+Parse OCaml compiler output into structured form.
+
+%package -n ocaml-ocamlc-loc-devel
+Summary: Development files for ocaml-ocamlc-loc
+License: MIT
+Requires: ocaml-ocamlc-loc%{?_isa} = %{version}-%{release}
+Requires: ocaml-dyn-devel%{?_isa} = %{version}-%{release}
+
+%description -n ocaml-ocamlc-loc-devel
+The ocaml-ordering-devel package contains libraries and signature files
+for developing applications that use ocaml-ocamlc-loc.
+
+%package -n ocaml-ordering
+Summary: Element ordering
+License: MIT
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description -n ocaml-ordering
+Element ordering in OCaml.
+
+%package -n ocaml-ordering-devel
+Summary: Development files for ocaml-ordering
+License: MIT
+Requires: ocaml-ordering%{?_isa} = %{version}-%{release}
+
+%description -n ocaml-ordering-devel
+The ocaml-ordering-devel package contains libraries and signature files
+for developing applications that use ocaml-ordering.
+
+%package -n ocaml-stdune
+Summary: Dune's unstable standard library
+License: MIT
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: ocaml-dyn%{?_isa} = %{version}-%{release}
+
+%description -n ocaml-stdune
+This package contains Dune's unstable standard library.
+
+%package -n ocaml-stdune-devel
+Summary: Development files for ocaml-stdune
+License: MIT
+Requires: ocaml-stdune%{?_isa} = %{version}-%{release}
+Requires: ocaml-dyn-devel%{?_isa} = %{version}-%{release}
+Requires: ocaml-csexp-devel%{?_isa}
+
+%description -n ocaml-stdune-devel
+The ocaml-stdune-devel package contains libraries and signature files
+for developing applications that use ocaml-stdune.
+
+%package -n ocaml-xdg
+Summary: XDG Base Directory Specification
+License: MIT
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description -n ocaml-xdg
+This package contains the XDG Base Directory Specification.
+%package -n ocaml-xdg-devel
+Summary: Development files for ocaml-xdg
+License: MIT
+Requires: ocaml-xdg%{?_isa} = %{version}-%{release}
+
+%description -n ocaml-xdg-devel
+The ocaml-xdg-devel package contains libraries and signature files for
+developing applications that use ocaml-xdg.
+
+%prep
+%autosetup -N -n dune-%{version}
+%autopatch 0 -p1
+rm -fr otherlibs/dune-rpc-lwt dune-rpc-lwt.opam
+%autopatch -m1 -p1
+
+# Allow use of Sphinx 6
+sed -i 's/, < 6//'g doc/requirements.txt
+
%build
-./configure --libdir %{_libdir}/ocaml --mandir %{_mandir}
-
-# This command fails, because ppx_bench, ppx_expect, and core_bench are missing.
-# However, it is only tests that fail, not the actual build, so ignore the
-# failures and continue.
-%make_build release || :
-./dune.exe build @install
-%make_build doc
-
-# Relink the stublibs. See https://github.com/ocaml/dune/issues/2977.
-cd _build/default/src/stdune
-ocamlmklib -g -ldopt "%{build_ldflags}" -o stdune_stubs fcntl_stubs.o
-cd -
-cd _build/default/src/dune_filesystem_stubs
-ocamlmklib -g -ldopt "%{build_ldflags}" -o dune_filesystem_stubs_stubs \
- $(ar t libdune_filesystem_stubs_stubs.a)
-cd -
+./configure \
+ --bindir %{_bindir} \
+ --datadir %{_datadir} \
+ --docdir %{_prefix}/doc \
+ --etcdir %{_sysconfdir} \
+ --libdir %{ocamldir} \
+ --libexecdir %{ocamldir} \
+ --mandir %{_mandir} \
+ --sbindir %{_sbindir}
+
+%make_build release
+
+# We also want the libraries
+# Do not use the bundled csexp and pp when building them
+rm -fr vendor/{csexp,pp}
+./dune.exe build %{?_smp_mflags} --verbose --release @install
%install
-# "make install" only installs the binary. We want the libraries, too.
-./dune.exe install --destdir %{buildroot}
+%make_install
+# Install the libraries
+./dune.exe install --destdir=%{buildroot}
-%ifarch %{ocaml_native_compiler}
-# Add missing executable bits
-find %{buildroot}%{_libdir}/ocaml -name \*.cmxs -exec chmod 0755 {} \+
-%endif
+# We use %%doc below
+rm -fr %{buildroot}%{_prefix}/doc
-%if %{with emacs}
# Byte compile the Emacs files
cd %{buildroot}%{_emacs_sitelispdir}
-%_emacs_bytecompile dune.el dune-flymake.el
+%_emacs_bytecompile *.el
cd -
-%else
-rm -rf %{buildroot}%{_datadir}/emacs
-%endif
-
-# Install documentation by way of pkgdocdir.
-rm -fr %{buildroot}%{_prefix}/doc
-mkdir -p %{buildroot}%{_pkgdocdir}/
-cp -ar README.md CHANGES.md MIGRATION.md doc/_build/* %{buildroot}%{_pkgdocdir}/
-%if %{with menhir}
-%check
-# These are the only tests we can run. The others require components that
-# either depend on dune themselves or are not available at all.
-%{buildroot}%{_bindir}/dune runtest test/unit-tests
-%endif
+# Generate %%files lists
+%ocaml_files -s
%files
%license LICENSE.md
-%doc %{_pkgdocdir}/README.md
-%doc %{_pkgdocdir}/CHANGES.md
-%doc %{_pkgdocdir}/MIGRATION.md
+%doc CHANGES.md README.md
%{_bindir}/dune
%{_mandir}/man*/dune*
-%dir %{_pkgdocdir}/
-%dir %{_libdir}/ocaml/dune/
-%dir %{_libdir}/ocaml/dune-action-plugin/
-%dir %{_libdir}/ocaml/dune-build-info/
-%dir %{_libdir}/ocaml/dune-configurator/
-%dir %{_libdir}/ocaml/dune-glob/
-%dir %{_libdir}/ocaml/dune-private-libs/
-%dir %{_libdir}/ocaml/dune-private-libs/dune-lang/
-%dir %{_libdir}/ocaml/dune-private-libs/dune_re/
-%dir %{_libdir}/ocaml/dune-private-libs/ocaml-config/
-%dir %{_libdir}/ocaml/dune-private-libs/stdune/
-%dir %{_libdir}/ocaml/dune-site/
-%dir %{_libdir}/ocaml/dune-site/plugins/
-%{_libdir}/ocaml/dune*/META
-%{_libdir}/ocaml/dune*/*.cma
-%{_libdir}/ocaml/dune*/*.cmi
-%{_libdir}/ocaml/dune-configurator/.private/
-%{_libdir}/ocaml/dune-private-libs/*/*.cma
-%{_libdir}/ocaml/dune-private-libs/*/*.cmi
-%{_libdir}/ocaml/dune-site/*/*.cma
-%{_libdir}/ocaml/dune-site/*/*.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/dune*/*.cmxs
-%{_libdir}/ocaml/dune-private-libs/*/*.cmxs
-%{_libdir}/ocaml/dune-site/*/*.cmxs
-%{_libdir}/ocaml/stublibs/dllstdune_stubs.so
-%{_libdir}/ocaml/stublibs/dlldune_filesystem_stubs_stubs.so
-%endif
-
-%files devel
-%{_libdir}/ocaml/dune*/dune-package
-%{_libdir}/ocaml/dune*/opam
-%{_libdir}/ocaml/dune*/*.cmt
-%{_libdir}/ocaml/dune*/*.cmti
-%{_libdir}/ocaml/dune*/*.ml
-%{_libdir}/ocaml/dune*/*.mli
-%{_libdir}/ocaml/dune-private-libs/*/*.cmt
-%{_libdir}/ocaml/dune-private-libs/*/*.cmti
-%{_libdir}/ocaml/dune-private-libs/*/*.ml
-%{_libdir}/ocaml/dune-private-libs/*/*.mli
-%{_libdir}/ocaml/dune-site/*/*.cmt
-%{_libdir}/ocaml/dune-site/*/*.cmti
-%{_libdir}/ocaml/dune-site/*/*.ml
-%{_libdir}/ocaml/dune-site/*/*.mli
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/dune*/*.a
-%{_libdir}/ocaml/dune*/*.cmx
-%{_libdir}/ocaml/dune*/*.cmxa
-%{_libdir}/ocaml/dune-private-libs/*/*.a
-%{_libdir}/ocaml/dune-private-libs/*/*.cmx
-%{_libdir}/ocaml/dune-private-libs/*/*.cmxa
-%{_libdir}/ocaml/dune-site/*/*.a
-%{_libdir}/ocaml/dune-site/*/*.cmx
-%{_libdir}/ocaml/dune-site/*/*.cmxa
-%endif
-
-%files doc
-%exclude %{_pkgdocdir}/README.md
-%exclude %{_pkgdocdir}/CHANGES.md
-%doc %{_pkgdocdir}/*
-
-%if %{with emacs}
+
%files emacs
%{_emacs_sitelispdir}/dune*
-%endif
+
+%files action-plugin -f .ofiles-dune-action-plugin
+
+%files action-plugin-devel -f .ofiles-dune-action-plugin-devel
+
+%files build-info -f .ofiles-dune-build-info
+
+%files build-info-devel -f .ofiles-dune-build-info-devel
+
+%files configurator -f .ofiles-dune-configurator
+%dir %{ocamldir}/dune/
+%{ocamldir}/dune/META
+
+%files configurator-devel -f .ofiles-dune-configurator-devel
+%{ocamldir}/dune/dune-package
+%{ocamldir}/dune/opam
+
+%files glob -f .ofiles-dune-glob
+
+%files glob-devel -f .ofiles-dune-glob-devel
+
+%files private-libs -f .ofiles-dune-private-libs
+
+%files private-libs-devel -f .ofiles-dune-private-libs-devel
+
+%files rpc -f .ofiles-dune-rpc
+
+%files rpc-devel -f .ofiles-dune-rpc-devel
+
+%files site -f .ofiles-dune-site
+
+%files site-devel -f .ofiles-dune-site-devel
+
+%files -n ocaml-chrome-trace -f .ofiles-chrome-trace
+
+%files -n ocaml-chrome-trace-devel -f .ofiles-chrome-trace-devel
+
+%files -n ocaml-dyn -f .ofiles-dyn
+
+%files -n ocaml-dyn-devel -f .ofiles-dyn-devel
+
+%files -n ocaml-ocamlc-loc -f .ofiles-ocamlc-loc
+
+%files -n ocaml-ocamlc-loc-devel -f .ofiles-ocamlc-loc-devel
+
+%files -n ocaml-ordering -f .ofiles-ordering
+
+%files -n ocaml-ordering-devel -f .ofiles-ordering-devel
+
+%files -n ocaml-stdune -f .ofiles-stdune
+
+%files -n ocaml-stdune-devel -f .ofiles-stdune-devel
+
+%files -n ocaml-xdg -f .ofiles-xdg
+
+%files -n ocaml-xdg-devel -f .ofiles-xdg-devel
%changelog
+* Fri Apr 26 2024 Mykhailo Bykhovtsev - 3.15.2-1
+- Converted spec file to match with Fedora 41.
+- Upgrade to version 3.15.2
+
* Thu Mar 31 2022 Pawel Winogrodzki - 2.8.5-3
- Cleaning-up spec. License verified.
diff --git a/SPECS/ocaml-fileutils/ocaml-fileutils-0.6.4-cmp.patch b/SPECS/ocaml-fileutils/ocaml-fileutils-0.6.4-cmp.patch
new file mode 100644
index 00000000000..9f81aa22027
--- /dev/null
+++ b/SPECS/ocaml-fileutils/ocaml-fileutils-0.6.4-cmp.patch
@@ -0,0 +1,17 @@
+--- fileutils-0.6.4/src/lib/fileutils/FileUtilCMP.ml.orig 2022-10-28 14:22:35.000000000 -0600
++++ fileutils-0.6.4/src/lib/fileutils/FileUtilCMP.ml 2023-06-22 15:04:21.317130686 -0600
+@@ -48,11 +48,14 @@ let cmp ?(skip1 = 0) fln1 ?(skip2 = 0) f
+ let rec loop count s1 s2 =
+ match s1, s2 with
+ | Seq.Cons (v1, s1), Seq.Cons (v2, s2) when v1 = v2 -> loop (count + 1) (s1 ()) (s2 ())
++ | Seq.Nil, Seq.Nil -> (-1)
+ | _ -> count
+ in
+ let count = loop 0 (stream1 ()) (stream2 ()) in
+ clean_fd ();
+- Some count
++ match count with
++ | (-1) -> None
++ | x -> Some x
+ end else
+ Some (-1)
diff --git a/SPECS/ocaml-fileutils/ocaml-fileutils-0.6.4-forward-compat.patch b/SPECS/ocaml-fileutils/ocaml-fileutils-0.6.4-forward-compat.patch
new file mode 100644
index 00000000000..2b1e0842374
--- /dev/null
+++ b/SPECS/ocaml-fileutils/ocaml-fileutils-0.6.4-forward-compat.patch
@@ -0,0 +1,27 @@
+--- fileutils-0.6.4/fileutils.opam.orig 2022-10-28 14:22:35.000000000 -0600
++++ fileutils-0.6.4/fileutils.opam 2023-06-22 13:01:26.779533940 -0600
+@@ -16,8 +16,6 @@ build: [
+ depends: [
+ "ocaml" {>= "4.03"}
+ "base-unix"
+- "stdlib-shims"
+- "seq"
+ "dune" {>= "1.11.0"}
+ "ounit2" {with-test & >= "2.0.0"}
+ ]
+--- fileutils-0.6.4/src/lib/fileutils/dune.orig 2022-10-28 14:22:35.000000000 -0600
++++ fileutils-0.6.4/src/lib/fileutils/dune 2023-06-22 13:01:47.403222843 -0600
+@@ -30,4 +30,4 @@
+ fileUtilWHICH
+ unixPath
+ win32Path)
+- (libraries unix seq stdlib-shims))
++ (libraries unix))
+--- fileutils-0.6.4/test/dune.orig 2022-10-28 14:22:35.000000000 -0600
++++ fileutils-0.6.4/test/dune 2023-06-22 13:02:04.739961336 -0600
+@@ -6,4 +6,4 @@
+ (test
+ (name test)
+ (modules test)
+- (libraries fileutils fileutils_str ounit2 stdlib-shims))
++ (libraries fileutils fileutils_str ounit2))
diff --git a/SPECS/ocaml-fileutils/ocaml-fileutils.signatures.json b/SPECS/ocaml-fileutils/ocaml-fileutils.signatures.json
index f9a38d5c81e..c4111dbeff0 100644
--- a/SPECS/ocaml-fileutils/ocaml-fileutils.signatures.json
+++ b/SPECS/ocaml-fileutils/ocaml-fileutils.signatures.json
@@ -1,6 +1,5 @@
{
- "Signatures": {
- "ocaml-fileutils_2-0.5.2.tar.gz": "c96442d7c032d6ba45e63143476f0c5fe2ea6f9b4bb452b0b9406decc5268352",
- "ocaml-fileutils-old-sources-build-files.tar.gz": "69c8ddcadefbb0d800c23e0e96f707fe181c03de39f59b309ee5542636d628ff"
- }
-}
+ "Signatures": {
+ "ocaml-fileutils-0.6.4.tar.gz": "70988d3a5ef30658df57cfd235f610693dfddf69448355df5bb1423014f05c1a"
+ }
+}
\ No newline at end of file
diff --git a/SPECS/ocaml-fileutils/ocaml-fileutils.spec b/SPECS/ocaml-fileutils/ocaml-fileutils.spec
index 79515a4269e..d8aaf35c9e0 100644
--- a/SPECS/ocaml-fileutils/ocaml-fileutils.spec
+++ b/SPECS/ocaml-fileutils/ocaml-fileutils.spec
@@ -1,27 +1,26 @@
Summary: OCaml library for common file and filename operations
Name: ocaml-fileutils
-Version: 0.5.2
-Release: 18%{?dist}
+Version: 0.6.4
+Release: 1%{?dist}
License: LGPLv2 WITH exceptions
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://github.com/gildor478/ocaml-fileutils
# NOTE: the "_2" suffix was added to avoid conflicts with an older source tarball for the same version of the sources.
# Please remove it during a version update.
-Source0: https://github.com/gildor478/ocaml-fileutils/archive/refs/tags/%{version}.tar.gz#/%{name}_2-%{version}.tar.gz
-# Set of files from previous sources location allowing us to drop dependency on "ocaml-oasis-devel", which is no longer available.
-# Previous sources used to be available under http://forge.ocamlcore.org/frs/download.php/1695/ocaml-fileutils-0.5.2.tar.gz.
-# Currently still available in Fedora's SRPMs.
-Source1: %{name}-old-sources-build-files.tar.gz
-Patch1: fileutils-0.5.2-fix-bytes.patch
-# Use ounit2.
-Patch2: ocaml-fileutils-0.5.2-ounit2.patch
-
-BuildRequires: ocaml >= 4.00.1
-BuildRequires: ocaml-findlib-devel >= 1.3.3-3
-BuildRequires: ocaml-ocamlbuild
-BuildRequires: ocaml-ocamldoc
-BuildRequires: ocaml-ounit-devel
+Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
+# Fedora does not need the stdlib-shims or seq forward compatibility packages
+Patch0: ocaml-fileutils-0.6.4-forward-compat.patch
+# Given two distinct files with identical contents, the cmp function evaluates
+# to "Some x", where x is the size of each file, instead of None. This breaks
+# the ocaml-gettext tests, which expect None in that case.
+Patch1: ocaml-fileutils-0.6.4-cmp.patch
+
+BuildRequires: ocaml >= 5.1.1
+BuildRequires: ocaml-dune >= 1.11.0
+%if 0%{?fedora} || 0%{?rhel} <= 6 || 0%{?azl}
+BuildRequires: ocaml-ounit-devel >= 2.0.0
+%endif
%description
This library is intended to provide a basic interface to the most
@@ -35,57 +34,39 @@ abstract filenames.
%package devel
Summary: Development files for %{name}
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
%prep
-%setup -q
-%setup -q -T -a 1 -D
-%autopatch -p1
+%autosetup -n %{name}-%{version} -p1
%build
-ocaml setup.ml -configure --prefix %{_prefix} --destdir %{buildroot} \
- --enable-tests
-make
+%dune_build
%install
-export DESTDIR=%{buildroot}
-export OCAMLFIND_DESTDIR=%{buildroot}%{_libdir}/ocaml
-mkdir -p $OCAMLFIND_DESTDIR $OCAMLFIND_DESTDIR/stublibs
-
-# Set htmldir to current directory, then copy the docs (in api/)
-# as a %doc rule.
-make htmldir=. install
+%dune_install
+# Do not run the tests (RHEL 7+ only) since they require ocaml-ounit.
+%if 0%{?fedora} || 0%{?rhel} || 0%{?azl}
%check
-make test
-
-%files
-%license COPYING.txt
-%{_libdir}/ocaml/fileutils
-%ifarch %{ocaml_native_compiler}
-%exclude %{_libdir}/ocaml/fileutils/*.a
-%exclude %{_libdir}/ocaml/fileutils/*.cmx
-%exclude %{_libdir}/ocaml/fileutils/*.cmxa
-%endif
-%exclude %{_libdir}/ocaml/fileutils/*.ml
-%exclude %{_libdir}/ocaml/fileutils/*.mli
-
-%files devel
-%license COPYING.txt
-%doc AUTHORS.txt CHANGELOG.txt README.txt TODO.txt
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/fileutils/*.a
-%{_libdir}/ocaml/fileutils/*.cmx
-%{_libdir}/ocaml/fileutils/*.cmxa
+%dune_check
%endif
-%{_libdir}/ocaml/fileutils/*.ml
-%{_libdir}/ocaml/fileutils/*.mli
+
+%files -f .ofiles
+%license LICENSE.txt
+
+%files devel -f .ofiles-devel
+%doc README.md CHANGES.md
%changelog
+* Tue May 07 2024 Mykhailo Bykhovtsev - 0.6.4-1
+- Converted spec file to match with Fedora 41.
+- Upgrade to 0.6.4
+- Use ocaml 5.1.1 to build
+
* Thu Mar 31 2022 Pawel Winogrodzki - 0.5.2-18
- Cleaning-up spec. License verified.
diff --git a/SPECS/ocaml-findlib/ocaml-findlib-toolbox.patch b/SPECS/ocaml-findlib/ocaml-findlib-toolbox.patch
new file mode 100644
index 00000000000..76f762da655
--- /dev/null
+++ b/SPECS/ocaml-findlib/ocaml-findlib-toolbox.patch
@@ -0,0 +1,117 @@
+--- findlib-1.9.6/src/findlib-toolbox/Makefile.orig 2022-09-24 09:13:16.000000000 -0600
++++ findlib-1.9.6/src/findlib-toolbox/Makefile 2023-06-16 08:46:01.965686356 -0600
+@@ -9,7 +9,7 @@ opt:
+ true
+
+ make_wizard$(EXEC_SUFFIX): make_wizard.ml
+- ocamlc -o make_wizard$(EXEC_SUFFIX) -I +unix -I +labltk -I ../findlib \
++ ocamlc -o make_wizard$(EXEC_SUFFIX) -I +str -I +unix -I +labltk -I ../findlib \
+ unix.cma str.cma labltk.cma findlib.cma make_wizard.ml
+
+ install:
+--- findlib-1.9.6/src/findlib-toolbox/make_wizard.ml.orig 2022-09-24 09:13:16.000000000 -0600
++++ findlib-1.9.6/src/findlib-toolbox/make_wizard.ml 2023-06-16 08:50:49.066603769 -0600
+@@ -468,23 +468,23 @@ let makemake() =
+ mkquote(metaquote !wiz_package_description);
+ "byte_objects",
+ String.concat " " (List.map
+- (fun m -> String.uncapitalize m ^ ".cmo")
++ (fun m -> String.uncapitalize_ascii m ^ ".cmo")
+ !wiz_objects);
+ "nat_objects",
+ String.concat " " (List.map
+- (fun m -> String.uncapitalize m ^ ".cmx")
++ (fun m -> String.uncapitalize_ascii m ^ ".cmx")
+ !wiz_objects);
+ "byte_executables",
+ String.concat " " byte_execs;
+ "byte_exec_objects",
+ String.concat " " (List.map
+- (fun m -> String.uncapitalize m ^ ".cmo")
++ (fun m -> String.uncapitalize_ascii m ^ ".cmo")
+ byte_exec_modules);
+ "nat_executables",
+ String.concat " " nat_execs;
+ "nat_exec_objects",
+ String.concat " " (List.map
+- (fun m -> String.uncapitalize m ^ ".cmx")
++ (fun m -> String.uncapitalize_ascii m ^ ".cmx")
+ nat_exec_modules);
+ "prereqs",
+ String.concat " " required_packages;
+@@ -526,7 +526,7 @@ let makemake() =
+ let deptargets =
+ String.concat " " (List.map
+ (fun m ->
+- let m' = String.uncapitalize m in
++ let m' = String.uncapitalize_ascii m in
+ m' ^ ".ml " ^ m' ^ ".mli")
+ !modlist) in
+ write "makemake_exec" ( [ "switches", switches;
+@@ -543,7 +543,7 @@ let makemake() =
+ if is_byte_exec execname then begin
+ let execobjs =
+ String.concat " " (List.map
+- (fun m -> String.uncapitalize m ^ ".cmo")
++ (fun m -> String.uncapitalize_ascii m ^ ".cmo")
+ !modlist) in
+ write "byte_exec" ( ["execname", execname;
+ "execobjs", execobjs ] @ variables )
+@@ -555,7 +555,7 @@ let makemake() =
+ if not (is_byte_exec execname) then begin
+ let execobjs =
+ String.concat " " (List.map
+- (fun m -> String.uncapitalize m ^ ".cmx")
++ (fun m -> String.uncapitalize_ascii m ^ ".cmx")
+ !modlist) in
+ write "nat_exec" ( ["execname", execname;
+ "execobjs", execobjs ] @ variables )
+@@ -1090,7 +1090,7 @@ let pkginfo lb row = (* when the user r
+ let files = Array.to_list(Sys.readdir dir) in
+ List.map
+ (fun name ->
+- String.capitalize (Filename.chop_suffix name ".cmi"))
++ String.capitalize_ascii (Filename.chop_suffix name ".cmi"))
+ (List.filter
+ (fun name ->
+ Filename.check_suffix name ".cmi")
+@@ -1128,7 +1128,7 @@ let preprocessor_scan_extensions() =
+ not (List.mem pkg plist)
+ )
+ !wiz_camlp4_selected in
+- List.sort Pervasives.compare (plist @ plist')
++ List.sort Stdlib.compare (plist @ plist')
+ ;;
+
+
+@@ -1196,7 +1196,7 @@ add_screen preprocessor_screen;;
+
+ let prerequisites_scan_packages() =
+ (* Find out all packages *)
+- List.sort Pervasives.compare (Fl_package_base.list_packages())
++ List.sort Stdlib.compare (Fl_package_base.list_packages())
+ ;;
+
+
+@@ -1255,10 +1255,10 @@ let buildlib_scan_modules() =
+ let files'' =
+ List.map
+ (fun f ->
+- String.capitalize (Filename.chop_extension f)
++ String.capitalize_ascii (Filename.chop_extension f)
+ )
+ files' in
+- remove_dups (List.sort Pervasives.compare files'')
++ remove_dups (List.sort Stdlib.compare files'')
+ ;;
+
+
+@@ -1353,7 +1353,7 @@ build any.";
+ end
+ else begin
+ wiz_executables :=
+- List.sort Pervasives.compare (name :: !wiz_executables);
++ List.sort Stdlib.compare (name :: !wiz_executables);
+ wiz_exec_objects := (name, ref []) :: !wiz_exec_objects;
+ wiz_exec_native := (name, ref false) :: !wiz_exec_native;
+ !update_listbox();
diff --git a/SPECS/ocaml-findlib/ocaml-findlib.signatures.json b/SPECS/ocaml-findlib/ocaml-findlib.signatures.json
index ffc6933d231..87a13890ed8 100644
--- a/SPECS/ocaml-findlib/ocaml-findlib.signatures.json
+++ b/SPECS/ocaml-findlib/ocaml-findlib.signatures.json
@@ -1,5 +1,5 @@
{
- "Signatures": {
- "findlib-1.8.1.tar.gz": "8e85cfa57e8745715432df3116697c8f41cb24b5ec16d1d5acd25e0196d34303"
- }
-}
+ "Signatures": {
+ "findlib-1.9.6.tar.gz": "2df996279ae16b606db5ff5879f93dbfade0898db9f1a3e82f7f845faa2930a2"
+ }
+}
\ No newline at end of file
diff --git a/SPECS/ocaml-findlib/ocaml-findlib.spec b/SPECS/ocaml-findlib/ocaml-findlib.spec
index b6bd4648516..b6aecb0c8d2 100644
--- a/SPECS/ocaml-findlib/ocaml-findlib.spec
+++ b/SPECS/ocaml-findlib/ocaml-findlib.spec
@@ -1,31 +1,38 @@
-%global __ocaml_requires_opts -i Asttypes -i Parsetree
+# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
+ExcludeArch: %{ix86}
+
+%ifnarch %{ocaml_native_compiler}
+%global debug_package %{nil}
+%endif
Summary: Objective CAML package manager and build helper
Name: ocaml-findlib
-Version: 1.8.1
-Release: 16%{?dist}
+Version: 1.9.6
+Release: 1%{?dist}
License: BSD
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: http://projects.camlcity.org/projects/findlib.html
Source0: http://download.camlcity.org/download/findlib-%{version}.tar.gz
-Patch0: bytes-lib-detection.patch
+Patch0: ocaml-findlib-toolbox.patch
-BuildRequires: gawk
-BuildRequires: m4
-BuildRequires: ncurses-devel
BuildRequires: ocaml >= 4.02.0
-#BuildRequires: ocaml-num-devel
+BuildRequires: ocaml-ocamlbuild
BuildRequires: ocaml-compiler-libs
-# BuildRequires: ocaml-labltk-devel
-BuildRequires: ocaml-ocamlbuild-devel
BuildRequires: ocaml-ocamldoc
-
+BuildRequires: ocaml-rpm-macros
+BuildRequires: m4
+BuildRequires: ncurses-devel
+BuildRequires: make
Requires: ocaml
+# Do not require ocaml-compiler-libs at runtime
+%global __ocaml_requires_opts -i Asttypes -i Build_path_prefix_map -i Cmi_format -i Env -i Ident -i Identifiable -i Load_path -i Location -i Longident -i Misc -i Outcometree -i Parsetree -i Path -i Primitive -i Shape -i Subst -i Topdirs -i Toploop -i Type_immediacy -i Types -i Warnings
+
+
%description
Objective CAML package manager and build helper.
-
+
%package devel
Summary: Development files for %{name}
Requires: %{name} = %{version}-%{release}
@@ -34,10 +41,25 @@ Requires: %{name} = %{version}-%{release}
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
+
%prep
%autosetup -p1 -n findlib-%{version}
-
-
+
+# Fix character encoding
+iconv -f ISO8859-1 -t UTF-8 doc/README > doc/README.utf8
+touch -r doc/README doc/README.utf8
+mv doc/README.utf8 doc/README
+
+# Fix the OCaml core man directory
+sed -i 's,/usr/local/man,%{_mandir},' configure
+
+# Configure bug? dynlink_subdir is the empty string
+sed -i 's/\${dynlink_subdir}/dynlink/' configure
+
+# Build an executable that is not damaged by stripping
+sed -i 's/\(custom=\)-custom/\1-output-complete-exe/' configure
+
+
%build
ocamlc -version
ocamlc -where
@@ -49,13 +71,12 @@ cat src/findlib/ocaml_args.ml
-sitelib `ocamlc -where` \
-mandir %{_mandir} \
-with-toolbox
-make all
+%make_build all
%ifarch %{ocaml_native_compiler}
-make opt
+%make_build opt
%endif
rm doc/guide-html/TIMESTAMP
-
-
+
%install
# Grrr destdir grrrr
mkdir -p %{buildroot}%{_bindir}
@@ -64,39 +85,32 @@ make install \
prefix=%{buildroot} \
OCAMLFIND_BIN=%{_bindir} \
OCAMLFIND_MAN=%{_mandir}
+
+# Remove spurious executable bits
+chmod 0644 %{buildroot}%{_mandir}/man{1,5}/*
+chmod 0644 %{buildroot}%{_libdir}/ocaml/findlib/*.{cma,cmi,ml,mli}
+chmod 0644 %{buildroot}%{_libdir}/ocaml/findlib/{META,Makefile*}
+%ifarch %{ocaml_native_compiler}
+chmod 0644 %{buildroot}%{_libdir}/ocaml/findlib/*.{a,cmxa}
+%endif
+%ocaml_files
+sed -i '/ocamlfind\.conf/d' .ofiles
-%files
+%files -f .ofiles
%license LICENSE
%doc doc/README
%config(noreplace) %{_sysconfdir}/ocamlfind.conf
-%{_bindir}/*
-%{_mandir}/man1/*
-%{_mandir}/man5/*
-%{_libdir}/ocaml/*/META
-%{_libdir}/ocaml/topfind
-%{_libdir}/ocaml/findlib
-%ifarch %{ocaml_native_compiler}
-%exclude %{_libdir}/ocaml/findlib/*.a
-%exclude %{_libdir}/ocaml/findlib/*.cmxa
-%endif
-%exclude %{_libdir}/ocaml/findlib/*.mli
-%exclude %{_libdir}/ocaml/findlib/Makefile.config
-%exclude %{_libdir}/ocaml/findlib/make_wizard
-%exclude %{_libdir}/ocaml/findlib/make_wizard.pattern
-# Had to disable this in OCaml 4.06, unclear why.
-#%%{_libdir}/ocaml/num-top
-
-%files devel
-%doc doc/README doc/guide-html
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/findlib/*.a
-%{_libdir}/ocaml/findlib/*.cmxa
-%endif
-%{_libdir}/ocaml/findlib/*.mli
-%{_libdir}/ocaml/findlib/Makefile.config
+
+%files devel -f .ofiles-devel
+%doc doc/README
+%doc doc/guide-html
%changelog
+* Thu Apr 25 2024 Mykhailo Bykhovtsev - 1.9.6-1
+- Converted spec file to match with Fedora 41.
+- Upgrading to version 1.9.6
+
* Wed Mar 30 2022 Pawel Winogrodzki - 1.8.1-16
- Updating dependencies.
diff --git a/SPECS/ocaml-gettext/ocaml-gettext-camomile2.patch b/SPECS/ocaml-gettext/ocaml-gettext-camomile2.patch
new file mode 100644
index 00000000000..a5ffd395090
--- /dev/null
+++ b/SPECS/ocaml-gettext/ocaml-gettext-camomile2.patch
@@ -0,0 +1,11 @@
+--- ocaml-gettext-0.4.2/src/lib/gettext-camomile/gettextCamomile.ml.orig 2020-06-11 14:40:42.000000000 -0600
++++ ocaml-gettext-0.4.2/src/lib/gettext-camomile/gettextCamomile.ml 2023-06-22 13:41:46.930127479 -0600
+@@ -20,7 +20,7 @@
+ (* USA *)
+ (**************************************************************************)
+
+-open CamomileLibraryDefault.Camomile
++open Camomile
+ open GettextTypes
+
+ (** Error reported when something goes wrong during Camomile initialization.
diff --git a/SPECS/ocaml-gettext/ocaml-gettext-ocaml5.patch b/SPECS/ocaml-gettext/ocaml-gettext-ocaml5.patch
new file mode 100644
index 00000000000..cbdf21b1e93
--- /dev/null
+++ b/SPECS/ocaml-gettext/ocaml-gettext-ocaml5.patch
@@ -0,0 +1,152 @@
+--- ocaml-gettext-0.4.2/gettext-camomile.opam.orig 2020-06-11 14:40:42.000000000 -0600
++++ ocaml-gettext-0.4.2/gettext-camomile.opam 2023-06-22 13:31:24.299464751 -0600
+@@ -19,9 +19,8 @@ depends: [
+ "ocaml" {>= "4.03.0"}
+ "dune" {>= "1.11.0"}
+ "camomile"
+- "base-bytes"
+ "gettext" {= version}
+- "ounit" {with-test & > "2.0.8"}
++ "ounit2" {with-test & > "2.2.6"}
+ "fileutils" {with-test}
+ ]
+ synopsis: "Internationalization library using camomile (i18n)"
+--- ocaml-gettext-0.4.2/gettext.opam.orig 2020-06-11 14:40:42.000000000 -0600
++++ ocaml-gettext-0.4.2/gettext.opam 2023-06-22 13:30:52.810938219 -0600
+@@ -20,8 +20,7 @@ depends: [
+ "dune" {>= "1.11.0"}
+ "cppo" {build}
+ "fileutils"
+- "base-bytes"
+- "ounit" {with-test & > "2.0.8"}
++ "ounit2" {with-test & > "2.2.6"}
+ ]
+ synopsis: "Internationalization library (i18n)"
+ description:"""
+--- ocaml-gettext-0.4.2/gettext-stub.opam.orig 2020-06-11 14:40:42.000000000 -0600
++++ ocaml-gettext-0.4.2/gettext-stub.opam 2023-06-22 13:32:14.938703327 -0600
+@@ -19,9 +19,8 @@ depends: [
+ "ocaml" {>= "4.03.0"}
+ "dune" {>= "1.11.0"}
+ "dune-configurator"
+- "base-bytes"
+ "gettext" {= version}
+- "ounit" {with-test & > "2.0.8"}
++ "ounit2" {with-test & > "2.2.6"}
+ "fileutils" {with-test}
+ ]
+ depexts: [
+--- ocaml-gettext-0.4.2/src/lib/gettext-stub/gettextStubCompat_stubs.c.orig 2020-06-11 14:40:42.000000000 -0600
++++ ocaml-gettext-0.4.2/src/lib/gettext-stub/gettextStubCompat_stubs.c 2023-06-22 13:33:17.080769220 -0600
+@@ -76,7 +76,7 @@ CAMLprim value gettextStubCompat_gettext
+ value v_msgid)
+ {
+ CAMLparam1(v_msgid);
+- CAMLreturn(copy_string(gettext(String_val(v_msgid))));
++ CAMLreturn(caml_copy_string(gettext(String_val(v_msgid))));
+ }
+
+ CAMLprim value gettextStubCompat_dgettext(
+@@ -85,7 +85,7 @@ CAMLprim value gettextStubCompat_dgettex
+ {
+ CAMLparam2(v_domainname, v_msgid);
+ CAMLreturn(
+- copy_string(
++ caml_copy_string(
+ dgettext(
+ String_val(v_domainname),
+ String_val(v_msgid))));
+@@ -98,7 +98,7 @@ CAMLprim value gettextStubCompat_dcgette
+ {
+ CAMLparam3(v_domainname, v_msgid, v_category);
+ CAMLreturn(
+- copy_string(
++ caml_copy_string(
+ dcgettext(
+ String_val(v_domainname),
+ String_val(v_msgid),
+@@ -112,7 +112,7 @@ CAMLprim value gettextStubCompat_ngettex
+ {
+ CAMLparam3(v_msgid1, v_msgid2, v_n);
+ CAMLreturn(
+- copy_string(
++ caml_copy_string(
+ ngettext(
+ String_val(v_msgid1),
+ String_val(v_msgid2),
+@@ -127,7 +127,7 @@ CAMLprim value gettextStubCompat_dngette
+ {
+ CAMLparam4(v_domainname, v_msgid1, v_msgid2, v_n);
+ CAMLreturn(
+- copy_string(
++ caml_copy_string(
+ dngettext(
+ String_val(v_domainname),
+ String_val(v_msgid1),
+@@ -158,7 +158,7 @@ CAMLprim value gettextStubCompat_dcngett
+ "NULL string not expected at "STRINGIFY(__LINE__)" in "__FILE__);
+ };
+
+- CAMLreturn(copy_string(res));
++ CAMLreturn(caml_copy_string(res));
+ }
+
+ CAMLprim value gettextStubCompat_textdomain(
+--- ocaml-gettext-0.4.2/test/common/dune.orig 2020-06-11 14:40:42.000000000 -0600
++++ ocaml-gettext-0.4.2/test/common/dune 2023-06-22 13:33:50.049275086 -0600
+@@ -1,3 +1,3 @@
+ (library
+ (name common)
+- (libraries gettext.base oUnit))
++ (libraries gettext.base ounit2))
+--- ocaml-gettext-0.4.2/test/dune.orig 2020-06-11 14:40:42.000000000 -0600
++++ ocaml-gettext-0.4.2/test/dune 2023-06-22 13:34:09.487983748 -0600
+@@ -6,7 +6,7 @@
+ ../src/bin/ocaml-xgettext/xgettext.exe
+ (glob_files testdata/*)
+ (glob_files testdata/fr_FR/LC_MESSAGES/*))
+- (libraries oUnit str fileutils gettext.extension common)
++ (libraries ounit2 str fileutils gettext.extension common)
+ (action
+ (run %{test}
+ -runner sequential
+--- ocaml-gettext-0.4.2/test/test-camomile/dune.orig 2020-06-11 14:40:42.000000000 -0600
++++ ocaml-gettext-0.4.2/test/test-camomile/dune 2023-06-22 13:34:24.840753623 -0600
+@@ -4,6 +4,6 @@
+ (deps
+ (glob_files testdata/*)
+ (glob_files ../testdata/fr_FR/LC_MESSAGES/*))
+- (libraries common gettext-camomile oUnit fileutils)
++ (libraries common gettext-camomile ounit2 fileutils)
+ (action
+ (run %{test} -test-dir ../testdata)))
+--- ocaml-gettext-0.4.2/test/test.ml.orig 2020-06-11 14:40:42.000000000 -0600
++++ ocaml-gettext-0.4.2/test/test.ml 2023-06-22 13:35:08.719095972 -0600
+@@ -221,7 +221,7 @@ let install_test =
+ Printf.sprintf "%s warning" fl_mo >:: fun ctxt ->
+ let tests = make_tests ctxt in
+ let out = Buffer.create 13 in
+- let capture_out strm = Stream.iter (Buffer.add_char out) strm in
++ let capture_out strm = Seq.iter (Buffer.add_char out) strm in
+ let fl_mo = concat tests.test_dir fl_mo in
+ let fl_dst = make_filename (tests.install_dir :: fl_dsts) in
+ assert_command
+@@ -392,7 +392,7 @@ let compile_ocaml =
+ []
+ in
+ let out = Buffer.create 13 in
+- let capture_out strm = Stream.iter (Buffer.add_char out) strm in
++ let capture_out strm = Seq.iter (Buffer.add_char out) strm in
+ let match_exp_err = Str.regexp (".*"^(Str.quote exp_err)^".*") in
+ assert_command
+ ~exit_code:(Unix.WEXITED exp_return_code)
+--- ocaml-gettext-0.4.2/test/test-stub/dune.orig 2020-06-11 14:40:42.000000000 -0600
++++ ocaml-gettext-0.4.2/test/test-stub/dune 2023-06-22 13:34:43.239477852 -0600
+@@ -4,6 +4,6 @@
+ (deps
+ (glob_files ../testdata/*)
+ (glob_files ../testdata/fr_FR/LC_MESSAGES/*))
+- (libraries common gettext-stub oUnit)
++ (libraries common gettext-stub ounit2)
+ (action
+ (run %{test} -test-dir ../testdata)))
diff --git a/SPECS/ocaml-gettext/ocaml-gettext.spec b/SPECS/ocaml-gettext/ocaml-gettext.spec
index 4a6e6c789d5..e2a6e26c1d1 100644
--- a/SPECS/ocaml-gettext/ocaml-gettext.spec
+++ b/SPECS/ocaml-gettext/ocaml-gettext.spec
@@ -1,36 +1,52 @@
-%global opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0)
-%global __ocaml_requires_opts -i Asttypes -i Parsetree
-%global __ocaml_provides_opts -i Pr_gettext
+# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
+ExcludeArch: %{ix86}
+
+# Optionally disable camomile dep on RHEL.
+%if !0%{?rhel}
+%bcond_without camomile
+%bcond_without tests
+%else
+%bcond_with camomile
+%bcond_with tests
+%endif
Summary: OCaml library for i18n
Name: ocaml-gettext
Version: 0.4.2
-Release: 2%{?dist}
+Release: 3%{?dist}
License: LGPLv2+ WITH exceptions
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://github.com/gildor478/ocaml-gettext
-Source0: https://github.com/gildor478/ocaml-gettext/releases/download/v%{version}/gettext-v%{version}.tbz
+Source0: %{url}/releases/download/v%{version}/gettext-v%{version}.tbz
+
+# Updates for OCaml 5. Based in part on
+# https://github.com/gildor478/ocaml-gettext/pull/24
+Patch0: %{name}-ocaml5.patch
+# Adapt to changes in camomile 2.0
+# https://github.com/gildor478/ocaml-gettext/pull/27
+Patch1: %{name}-camomile2.patch
-BuildRequires: autoconf
-BuildRequires: automake
-BuildRequires: chrpath
+BuildRequires: ocaml >= 5.1.1
+BuildRequires: ocaml-fileutils-devel >= 0.4.4-4
+BuildRequires: ocaml-dune >= 1.11.0
+BuildRequires: ocaml-dune-configurator-devel
+BuildRequires: ocaml-cppo
BuildRequires: docbook-style-xsl
-BuildRequires: libxml2
BuildRequires: libxslt
-BuildRequires: ocaml >= 4.00.1
-BuildRequires: ocaml-camomile-data
-BuildRequires: ocaml-camomile-devel >= 0.8.6-3
-BuildRequires: ocaml-compiler-libs
-BuildRequires: ocaml-cppo
-BuildRequires: ocaml-dune-devel
-BuildRequires: ocaml-fileutils-devel >= 0.4.4-4
-BuildRequires: ocaml-findlib-devel >= 1.3.3-3
-BuildRequires: ocaml-ocamldoc
+BuildRequires: libxml2
+%if %{with_check}
BuildRequires: ocaml-ounit-devel
+%endif
+%if %{with camomile}
+BuildRequires: ocaml-camomile-devel >= 0.8.6-3
+BuildRequires: ocaml-camomile-data
+%endif
+%if %{with camomile}
# ocaml-gettext program needs camomile data files
Requires: ocaml-camomile-data
+%endif
%description
Ocaml-gettext provides support for internationalization of Ocaml
@@ -45,19 +61,19 @@ Constraints :
%package devel
Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
-Requires: %{name} = %{version}-%{release}
# BZ 446919.
-Requires: ocaml-fileutils-devel >= 0.4.0
+Requires: ocaml-fileutils-devel%{?_isa} >= 0.4.0
%description devel
The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
+%if %{with camomile}
%package camomile
Summary: Parts of %{name} which depend on Camomile
-
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}%{?_isa} = %{version}-%{release}
%description camomile
The %{name}-camomile package contains the parts of %{name} which
@@ -65,95 +81,63 @@ depend on Camomile.
%package camomile-devel
Summary: Development files for %{name}-camomile
-
-Requires: %{name}-camomile = %{version}-%{release}
-Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-devel%{?_isa} = %{version}-%{release}
+Requires: %{name}-camomile%{?_isa} = %{version}-%{release}
+Requires: ocaml-camomile-devel%{?_isa}
%description camomile-devel
The %{name}-camomile-devel package contains libraries and
signature files for developing applications that use
%{name}-camomile.
+%endif
%prep
-%autosetup -n gettext-v%{version}
-
-# Remove dependency on batteries.
-sed -i -e 's/batteries//' test/dune
-sed -i -e 's/batteries//' test/test-stub/dune
+%autosetup -n gettext-v%{version} -p1
+
+%if %{without camomile}
+# Remove dependency on camomile.
+rm -f gettext-camomile.opam
+rm -r src/lib/gettext-camomile
+rm -r test/test-camomile
+sed -i -e 's/camomile//' `find -name dune`
+%endif
%build
-make build
-
-#check
-# Tests require batteries, so they are disabled at present.
-# Under discussion with upstream.
+%dune_build
%install
-mkdir -p %{buildroot}%{_libdir}/ocaml
-mkdir -p %{buildroot}%{_bindir}
-dune install --destdir=%{buildroot}
+%dune_install -s
+sed -i '\@%{_bindir}@d;\@%{_mandir}@d' .ofiles-gettext
+cat .ofiles-gettext-stub >> .ofiles-gettext
+cat .ofiles-gettext-stub-devel >> .ofiles-gettext-devel
-# Remove this, we will use our own rules for documentation.
-rm -rf %{buildroot}%{_prefix}/doc
+%check
+%dune_check
-%files
+%files -f .ofiles-gettext
%license LICENSE.txt
-%{_libdir}/ocaml/gettext
-%{_libdir}/ocaml/gettext-stub
-%if %{opt}
-%exclude %{_libdir}/ocaml/gettext/*.cmxa
-%exclude %{_libdir}/ocaml/gettext/*/*.a
-%exclude %{_libdir}/ocaml/gettext/*/*.cmxa
-%exclude %{_libdir}/ocaml/gettext/*/*.cmx
-%exclude %{_libdir}/ocaml/gettext-stub/*.a
-%exclude %{_libdir}/ocaml/gettext-stub/*.cmxa
-%exclude %{_libdir}/ocaml/gettext-stub/*.cmx
-%endif
-%exclude %{_libdir}/ocaml/gettext/*/*.ml
-%exclude %{_libdir}/ocaml/gettext/*/*.mli
-%exclude %{_libdir}/ocaml/gettext-stub/*.ml
-%{_libdir}/ocaml/stublibs/*.so
-%files devel
+%files devel -f .ofiles-gettext-devel
%doc README.md CHANGES.md THANKS TODO.md
-%if %{opt}
-%{_libdir}/ocaml/gettext/*.cmxa
-%{_libdir}/ocaml/gettext/*/*.a
-%{_libdir}/ocaml/gettext/*/*.cmxa
-%{_libdir}/ocaml/gettext/*/*.cmx
-%{_libdir}/ocaml/gettext-stub/*.a
-%{_libdir}/ocaml/gettext-stub/*.cmxa
-%{_libdir}/ocaml/gettext-stub/*.cmx
-%endif
-%{_libdir}/ocaml/gettext/*/*.ml
-%{_libdir}/ocaml/gettext/*/*.mli
-%{_libdir}/ocaml/gettext-stub/*.ml
%{_bindir}/ocaml-gettext
%{_bindir}/ocaml-xgettext
%{_mandir}/man1/ocaml-gettext.1*
%{_mandir}/man1/ocaml-xgettext.1*
%{_mandir}/man5/ocaml-gettext.5*
-%files camomile
+%if %{with camomile}
+%files camomile -f .ofiles-gettext-camomile
%license LICENSE.txt
-%{_libdir}/ocaml/gettext-camomile
-%if %{opt}
-%exclude %{_libdir}/ocaml/gettext-camomile/*.a
-%exclude %{_libdir}/ocaml/gettext-camomile/*.cmxa
-%exclude %{_libdir}/ocaml/gettext-camomile/*.cmx
-%endif
-%exclude %{_libdir}/ocaml/gettext-camomile/*.mli
-%files camomile-devel
+%files camomile-devel -f .ofiles-gettext-camomile-devel
%doc README.md
-%if %{opt}
-%{_libdir}/ocaml/gettext-camomile/*.a
-%{_libdir}/ocaml/gettext-camomile/*.cmxa
-%{_libdir}/ocaml/gettext-camomile/*.cmx
%endif
-%{_libdir}/ocaml/gettext-camomile/*.mli
%changelog
+* Tue May 07 2024 Mykhailo Bykhovtsev - 0.4.2-3
+- Converted spec file to match with Fedora 41.
+- Use ocaml 5.1.1 to build
+
* Thu Mar 31 2022 Pawel Winogrodzki - 0.4.2-2
- Cleaning-up spec. License verified.
diff --git a/SPECS/ocaml-lwt/0001-Prepare-for-stricter-checking-in-GCC-14.patch b/SPECS/ocaml-lwt/0001-Prepare-for-stricter-checking-in-GCC-14.patch
new file mode 100644
index 00000000000..ef2a2d53169
--- /dev/null
+++ b/SPECS/ocaml-lwt/0001-Prepare-for-stricter-checking-in-GCC-14.patch
@@ -0,0 +1,103 @@
+From 0d8725d3d113a9f0738b599957d2d97aecdc42d8 Mon Sep 17 00:00:00 2001
+From: Jerry James
+Date: Fri, 1 Dec 2023 19:42:55 -0700
+Subject: [PATCH] Prepare for stricter checking in GCC 14
+
+---
+ src/unix/config/discover.ml | 21 +++++++++----------
+ .../unix_c/unix_getprotoby_getservby_job.c | 1 +
+ 2 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/src/unix/config/discover.ml b/src/unix/config/discover.ml
+index bd528ca..931efd5 100644
+--- a/src/unix/config/discover.ml
++++ b/src/unix/config/discover.ml
+@@ -652,9 +652,8 @@ struct
+
+ int main()
+ {
+- struct hostent *he;
+- struct servent *se;
+- he =
++ int x;
++ x =
+ gethostbyname_r(
+ (const char*)NULL,
+ (struct hostent*)NULL,
+@@ -662,9 +661,9 @@ struct
+ (int)0,
+ (struct hostent**)NULL,
+ (int*)NULL);
+- he =
++ x =
+ gethostbyaddr_r(
+- (const char*)NULL,
++ (const void*)NULL,
+ (int)0,
+ (int)0,
+ (struct hostent*)NULL,
+@@ -672,7 +671,7 @@ struct
+ (int)0,
+ (struct hostent**)NULL,
+ (int*)NULL);
+- se =
++ x =
+ getservbyname_r(
+ (const char*)NULL,
+ (const char*)NULL,
+@@ -680,7 +679,7 @@ struct
+ (char*)NULL,
+ (int)0,
+ (struct servent**)NULL);
+- se =
++ x =
+ getservbyport_r(
+ (int)0,
+ (const char*)NULL,
+@@ -688,20 +687,20 @@ struct
+ (char*)NULL,
+ (int)0,
+ (struct servent**)NULL);
+- pr =
++ x =
+ getprotoent_r(
+ (struct protoent*)NULL,
+ (char*)NULL,
+ (int)0,
+ (struct protoent**)NULL);
+- pr =
++ x =
+ getprotobyname_r(
+ (const char*)NULL,
+ (struct protoent*)NULL,
+ (char*)NULL,
+ (int)0,
+ (struct protoent**)NULL);
+- pr =
++ x =
+ getprotobynumber_r(
+ (int)0,
+ (struct protoent*)NULL,
+@@ -793,7 +792,7 @@ struct
+
+ int main()
+ {
+- int (*mincore_ptr)(const void*, size_t, char*) = mincore;
++ int (*mincore_ptr)(void*, size_t, unsigned char*) = mincore;
+ return (int)(mincore_ptr == NULL);
+ }
+ |}
+diff --git a/src/unix/unix_c/unix_getprotoby_getservby_job.c b/src/unix/unix_c/unix_getprotoby_getservby_job.c
+index 5169fc9..88804d1 100644
+--- a/src/unix/unix_c/unix_getprotoby_getservby_job.c
++++ b/src/unix/unix_c/unix_getprotoby_getservby_job.c
+@@ -9,6 +9,7 @@
+
+ #define ARGS(args...) args
+
++#include
+ #include
+ #include
+ #include
+--
+2.43.0
diff --git a/SPECS/ocaml-lwt/ocaml-lwt.signatures.json b/SPECS/ocaml-lwt/ocaml-lwt.signatures.json
index f2140c304f5..b9486b965e5 100644
--- a/SPECS/ocaml-lwt/ocaml-lwt.signatures.json
+++ b/SPECS/ocaml-lwt/ocaml-lwt.signatures.json
@@ -1,5 +1,5 @@
{
"Signatures": {
- "lwt-5.4.1.tar.gz": "9090e646cff89435971a9bca08c4ddbb4719f5d6c8745cfd617d3a549a0ed1cf"
+ "lwt-5.7.0.tar.gz": "371031c38071f6f1b1b815cbe07f436c013af8fd8c4862c57a12e37c15c8b785"
}
}
diff --git a/SPECS/ocaml-lwt/ocaml-lwt.spec b/SPECS/ocaml-lwt/ocaml-lwt.spec
index 547cdb81617..a9c0f46c679 100644
--- a/SPECS/ocaml-lwt/ocaml-lwt.spec
+++ b/SPECS/ocaml-lwt/ocaml-lwt.spec
@@ -1,32 +1,31 @@
Summary: OCaml lightweight thread library
Name: ocaml-lwt
-Version: 5.4.1
-Release: 9%{?dist}
+Version: 5.7.0
+Release: 1%{?dist}
License: MIT
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://ocsigen.org/lwt
Source0: https://github.com/ocsigen/lwt/archive/refs/tags/%{version}.tar.gz#/lwt-%{version}.tar.gz
+# Fix GCC 14 incompatibilites: https://github.com/ocsigen/lwt/pull/1004
+Patch0: 0001-Prepare-for-stricter-checking-in-GCC-14.patch
-BuildRequires: dune
-BuildRequires: glib2-devel
-BuildRequires: libev-devel
-BuildRequires: ocaml >= 4.02.0
-BuildRequires: ocaml-bisect-ppx-devel
-BuildRequires: ocaml-cppo
-BuildRequires: ocaml-dune-devel
+BuildRequires: ocaml >= 5.1.1
+BuildRequires: ocaml-dune >= 1.8.0
+BuildRequires: ocaml-dune-configurator-devel
BuildRequires: ocaml-findlib
-# lwt_luv dependencies.
-BuildRequires: ocaml-luv-devel
-# lwt.unix dependencies
-BuildRequires: ocaml-mmap-devel
+BuildRequires: ocaml-cppo >= 1.1.0
BuildRequires: ocaml-ocplib-endian-devel
-# lwt_ppx dependencies.
-BuildRequires: ocaml-ppxlib >= 0.16.0
+
# lwt_react dependencies.
-BuildRequires: ocaml-react-devel
-BuildRequires: ocaml-result-devel
-BuildRequires: ocaml-seq-devel
+BuildRequires: ocaml-react-devel >= 1.0.0
+
+# lwt_ppx dependencies.
+BuildRequires: ocaml-ppxlib-devel >= 0.30.0
+BuildRequires: ocaml-ppx-let-devel
+
+# optional dependencies.
+BuildRequires: libev-devel
%description
Lwt is a lightweight thread library for Objective Caml. This library
@@ -34,41 +33,19 @@ is part of the Ocsigen project.
%package devel
Summary: Development files for %{name}
-
Requires: %{name}%{?_isa} = %{version}-%{release}
-Requires: libev-devel%{?_isa}
-Requires: ocaml-mmap-devel%{?_isa}
Requires: ocaml-ocplib-endian-devel%{?_isa}
-Requires: ocaml-result-devel%{?_isa}
-Requires: ocaml-seq-devel%{?_isa}
+Requires: libev-devel%{?_isa}
+
+# This can be removed when F43 reaches EOL
+Obsoletes: ocaml-lwt-luv-devel < 5.7.0
%description devel
The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
-%package luv
-Summary: Libuv engine for lwt
-
-Requires: %{name}%{?_isa} = %{version}-%{release}
-
-%description luv
-This package contains a libuv engine for lwt.
-
-%package luv-devel
-Summary: Development files for ocaml-lwt-luv
-
-Requires: %{name}-devel%{?_isa} = %{version}-%{release}
-Requires: %{name}-luv%{?_isa} = %{version}-%{release}
-Requires: ocaml-luv-devel%{?_isa}
-Requires: ocaml-result-devel%{?_isa}
-
-%description luv-devel
-The %{name}-luv-devel package contains libraries and signature files for
-developing applications that use %{name}-luv.
-
%package react
Summary: Helpers for using React with Lwt
-
Requires: %{name}%{?_isa} = %{version}-%{release}
%description react
@@ -77,8 +54,8 @@ Helpers for using React with Lwt.
%package react-devel
Summary: Development files for ocaml-lwt-react
-Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-react%{?_isa} = %{version}-%{release}
+Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Requires: ocaml-react-devel%{?_isa}
%description react-devel
@@ -87,7 +64,6 @@ developing applications that use %{name}-react.
%package ppx
Summary: PPX syntax for Lwt
-
Requires: %{name}%{?_isa} = %{version}-%{release}
%description ppx
@@ -96,8 +72,8 @@ PPX syntax for Lwt, providing something similar to async/await from JavaScript.
%package ppx-devel
Summary: Development files for ocaml-lwt-ppx
-Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Requires: %{name}-ppx%{?_isa} = %{version}-%{release}
+Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Requires: ocaml-ppxlib-devel%{?_isa}
%description ppx-devel
@@ -105,7 +81,7 @@ The %{name}-ppx-devel package contains libraries and signature files for
developing applications that use %{name}-ppx.
%prep
-%autosetup -n lwt-%{version}
+%autosetup -n lwt-%{version} -p1
# It looks like one test fails.
# Actually, it looks like all the "mcast" tests fail in koji.
@@ -119,140 +95,48 @@ sed 's,test_mcast "mcast-nojoin-noloop" false false;,(*test_mcast "mcast-nojoin-
# Enable libev and pthread.
dune exec src/unix/config/discover.exe -- --save \
--use-libev true --use-pthread true
-dune build --profile=release --verbose
-
-# Relink the stublib with RPM_LD_FLAGS
-cd _build/default/src/unix
-ocamlmklib -g -ldopt "$RPM_LD_FLAGS" -lev -lpthread -lm -o lwt_unix_stubs \
- $(ar t liblwt_unix_stubs.a)
-cd -
+%dune_build
%install
-dune install --profile=release --destdir %{buildroot}
+%dune_install -s
-# Remove spurious dune-installed documentation.
-rm -rf %{buildroot}/%{_prefix}/doc
+# Remove test-only directory
+rm -rf %{buildroot}%{ocamldir}/lwt_ppx_let
%check
# Disable this test on s390x.
# https://bugzilla.redhat.com/show_bug.cgi?id=1826511
%ifnarch s390x
-dune runtest --profile=release
+%dune_check
%endif
-%files
+%files -f .ofiles-lwt
%doc CHANGES README.md
%license LICENSE.md
-%dir %{_libdir}/ocaml/lwt/
-%dir %{_libdir}/ocaml/lwt/unix/
-%{_libdir}/ocaml/lwt/META
-%{_libdir}/ocaml/lwt/dune-package
-%{_libdir}/ocaml/lwt/opam
-%{_libdir}/ocaml/lwt/*.cma
-%{_libdir}/ocaml/lwt/*.cmi
-%{_libdir}/ocaml/lwt/unix/*.cma
-%{_libdir}/ocaml/lwt/unix/*.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/lwt/*.cmxs
-%{_libdir}/ocaml/lwt/unix/*.cmxs
-%endif
-%{_libdir}/ocaml/stublibs/*.so
-%files devel
-%doc CHANGES README.md
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/lwt/*.a
-%{_libdir}/ocaml/lwt/*.cmxa
-%{_libdir}/ocaml/lwt/*.cmx
-%{_libdir}/ocaml/lwt/unix/*.a
-%{_libdir}/ocaml/lwt/unix/*.cmxa
-%{_libdir}/ocaml/lwt/unix/*.cmx
-%endif
-%{_libdir}/ocaml/lwt/*.cmt
-%{_libdir}/ocaml/lwt/*.cmti
-%{_libdir}/ocaml/lwt/*.ml
-%{_libdir}/ocaml/lwt/*.mli
-%{_libdir}/ocaml/lwt/unix/*.cmt
-%{_libdir}/ocaml/lwt/unix/*.cmti
-%{_libdir}/ocaml/lwt/unix/*.h
-%{_libdir}/ocaml/lwt/unix/*.ml
-%{_libdir}/ocaml/lwt/unix/*.mli
-
-%files luv
+%files devel -f .ofiles-lwt-devel
%doc CHANGES README.md
%license LICENSE.md
-%dir %{_libdir}/ocaml/lwt_luv/
-%{_libdir}/ocaml/lwt_luv/META
-%{_libdir}/ocaml/lwt_luv/dune-package
-%{_libdir}/ocaml/lwt_luv/opam
-%{_libdir}/ocaml/lwt_luv/*.cma
-%{_libdir}/ocaml/lwt_luv/*.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/lwt_luv/*.cmxs
-%endif
-%files luv-devel
+%files react -f .ofiles-lwt_react
%doc CHANGES README.md
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/lwt_luv/*.a
-%{_libdir}/ocaml/lwt_luv/*.cmxa
-%{_libdir}/ocaml/lwt_luv/*.cmx
-%endif
-%{_libdir}/ocaml/lwt_luv/*.cmt
-%{_libdir}/ocaml/lwt_luv/*.cmti
-%{_libdir}/ocaml/lwt_luv/*.ml
-%{_libdir}/ocaml/lwt_luv/*.mli
+%license LICENSE.md
-%files react
+%files react-devel -f .ofiles-lwt_react-devel
%doc CHANGES README.md
-%license LICENSE.md
-%dir %{_libdir}/ocaml/lwt_react/
-%{_libdir}/ocaml/lwt_react/META
-%{_libdir}/ocaml/lwt_react/dune-package
-%{_libdir}/ocaml/lwt_react/opam
-%{_libdir}/ocaml/lwt_react/*.cma
-%{_libdir}/ocaml/lwt_react/*.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/lwt_react/*.cmxs
-%endif
-%files react-devel
+%files ppx -f .ofiles-lwt_ppx
%doc CHANGES README.md
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/lwt_react/*.a
-%{_libdir}/ocaml/lwt_react/*.cmxa
-%{_libdir}/ocaml/lwt_react/*.cmx
-%endif
-%{_libdir}/ocaml/lwt_react/*.cmt
-%{_libdir}/ocaml/lwt_react/*.cmti
-%{_libdir}/ocaml/lwt_react/*.ml
-%{_libdir}/ocaml/lwt_react/*.mli
-
-%files ppx
-%dir %{_libdir}/ocaml/lwt_ppx/
-%{_libdir}/ocaml/lwt_ppx/META
-%{_libdir}/ocaml/lwt_ppx/dune-package
-%{_libdir}/ocaml/lwt_ppx/opam
-%{_libdir}/ocaml/lwt_ppx/ppx.exe
-%{_libdir}/ocaml/lwt_ppx/*.cma
-%{_libdir}/ocaml/lwt_ppx/*.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/lwt_ppx/*.cmxs
-%endif
-%files ppx-devel
+%files ppx-devel -f .ofiles-lwt_ppx-devel
%doc CHANGES README.md
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/lwt_ppx/*.a
-%{_libdir}/ocaml/lwt_ppx/*.cmxa
-%{_libdir}/ocaml/lwt_ppx/*.cmx
-%endif
-%{_libdir}/ocaml/lwt_ppx/*.cmt
-%{_libdir}/ocaml/lwt_ppx/*.cmti
-%{_libdir}/ocaml/lwt_ppx/*.ml
-%{_libdir}/ocaml/lwt_ppx/*.mli
+
%changelog
+* Wed May 01 2024 Mykhailo Bykhovtsev - 5.7.0-1
+- Converted spec file to match with Fedora 41.
+- Upgrade to 5.7.0
+
* Wed Sep 20 2023 Jon Slobodzian - 5.4.1-9
- Recompile with stack-protection fixed gcc version (CVE-2023-4039)
diff --git a/SPECS/ocaml-num/0001-src-Add-g-flag-to-mklib.patch b/SPECS/ocaml-num/0001-src-Add-g-flag-to-mklib.patch
new file mode 100644
index 00000000000..3e8b93c9157
--- /dev/null
+++ b/SPECS/ocaml-num/0001-src-Add-g-flag-to-mklib.patch
@@ -0,0 +1,41 @@
+From 0419c771916f4f53e6dd2d89cfd11384ecd2be96 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones"
+Date: Wed, 8 Nov 2017 22:16:59 +0000
+Subject: [PATCH 1/1] src: Add -g flag to mklib.
+
+---
+ src/Makefile | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 8ad0e2c..4dc802f 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -65,13 +65,13 @@ endif
+ @echo ')' >> $@
+
+ libnums.$(A): $(COBJS)
+- $(OCAMLMKLIB) -oc nums $(COBJS)
++ $(OCAMLMKLIB) -g -oc nums $(COBJS)
+
+ nums.cma: $(CMOS)
+- $(OCAMLMKLIB) -o nums -oc nums -linkall $(CMOS)
++ $(OCAMLMKLIB) -g -o nums -oc nums -linkall $(CMOS)
+
+ nums.cmxa: $(CMXS)
+- $(OCAMLMKLIB) -o nums -oc nums -linkall $(CMXS)
++ $(OCAMLMKLIB) -g -o nums -oc nums -linkall $(CMXS)
+
+ nums.cmxs: nums.cmxa libnums.$(A)
+ $(OCAMLOPT) $(CAMLOPTFLAGS) -I . -shared -o nums.cmxs nums.cmxa
+@@ -91,7 +91,7 @@ nat_stubs.$(O): bng.h nat.h
+ %.cmx: %.ml
+ $(OCAMLOPT) $(CAMLOPTFLAGS) -c $*.ml
+ %.$(O): %.c
+- $(OCAMLC) -ccopt -DBNG_ARCH_$(BNG_ARCH) -c $*.c
++ $(OCAMLC) -g -ccopt -DBNG_ARCH_$(BNG_ARCH) -c $*.c
+
+ # Legacy installation: files go into OCaml's stdlib directory; only META
+ # is installed via findlib
+--
+2.24.1
diff --git a/SPECS/ocaml-num/ocaml-num.signatures.json b/SPECS/ocaml-num/ocaml-num.signatures.json
index 787765847b2..23c5a347576 100644
--- a/SPECS/ocaml-num/ocaml-num.signatures.json
+++ b/SPECS/ocaml-num/ocaml-num.signatures.json
@@ -1,5 +1,5 @@
{
"Signatures": {
- "num-1.3.tar.gz": "4f79c30e81ea9553c5b2c5b5b57bb19968ccad1e85256b3c446b5df58f33e94d"
+ "ocaml-num-1.5.tar.gz": "7ae07c8f5601e2dfc5008a62dcaf2719912ae596a19365c5d7bdf2230515959a"
}
}
diff --git a/SPECS/ocaml-num/ocaml-num.spec b/SPECS/ocaml-num/ocaml-num.spec
index b19e9ddb5c7..fb72ee6f8c9 100644
--- a/SPECS/ocaml-num/ocaml-num.spec
+++ b/SPECS/ocaml-num/ocaml-num.spec
@@ -1,23 +1,45 @@
+# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
+ExcludeArch: %{ix86}
+
+%ifarch %{ocaml_native_compiler}
+%ifarch x86_64
+%global num_arch amd64
+%else
+%ifarch aarch64
+%global num_arch arm64
+%else
+%ifarch ppc64le
+%global num_arch power
+%else
+%global num_arch %{_arch}
+%endif
+%endif
+%endif
+%else
+%global num_arch none
+%endif
+
Summary: Legacy Num library for arbitrary-precision integer and rational arithmetic
Name: ocaml-num
-Version: 1.3
-Release: 2%{?dist}
+Version: 1.5
+Release: 1%{?dist}
License: LGPLv2+ WITH exceptions
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://github.com/ocaml/num
-Source0: https://github.com/ocaml/num/archive/v%{version}/%{name}-%{version}.tar.gz#/num-%{version}.tar.gz
-# All patches since 1.3 was released.
-Patch1: 0001-Bump-version.patch
-Patch2: 0002-Fix-usage-of-bytes-vs-string.patch
-Patch3: 0003-Get-rid-of-Bytes.unsafe_of_string.patch
-# Downstream patches to add -g flag.
-Patch4: 0004-toplevel-Add-g-flag.patch
-Patch5: 0005-src-Add-g-flag-to-mklib.patch
+Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz#/%{name}-%{version}.tar.gz
+# Downstream patch to add -g flag.
+Patch5: 0001-src-Add-g-flag-to-mklib.patch
BuildRequires: make
-BuildRequires: ocaml
-BuildRequires: ocaml-findlib-devel
+BuildRequires: ocaml >= 5.1.1
+BuildRequires: ocaml-compiler-libs
+BuildRequires: ocaml-findlib
+BuildRequires: ocaml-rpm-macros
+
+# Do not require ocaml-compiler-libs at runtime
+%global __ocaml_requires_opts -i Longident -i Topdirs
+
%description
This library implements arbitrary-precision arithmetic on big integers
@@ -31,59 +53,50 @@ library, and older applications that already use Num are encouraged to
switch to Zarith. Zarith delivers much better performance than Num and
has a nicer API.
+
%package devel
Summary: Development files for %{name}
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
%description devel
The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
+
%prep
-%setup -q -n num-%{version}
-%autopatch -p1
+%autosetup -n num-%{version} -p1
+
%build
-make %{?_smp_mflags} all
+make opam-modern PROFILE=release ARCH=%{num_arch} FLAMBDA=true
+
%check
-make -j1 test
+make -j1 test PROFILE=release ARCH=%{num_arch} FLAMBDA=true
+
%install
-export DESTDIR=%{buildroot}
export OCAMLFIND_DESTDIR=%{buildroot}%{_libdir}/ocaml
-mkdir -p $OCAMLFIND_DESTDIR
mkdir -p $OCAMLFIND_DESTDIR/stublibs
-make install
+%make_install ARCH=%{num_arch}
+%ocaml_files
-find $OCAMLFIND_DESTDIR -name '*.cmti' -delete
-%files
+%files -f .ofiles
%doc Changelog README.md
%license LICENSE
-%{_libdir}/ocaml/*.cmi
-%{_libdir}/ocaml/*.cma
-%{_libdir}/ocaml/*.cmxs
-%{_libdir}/ocaml/num
-%{_libdir}/ocaml/num-top
-%{_libdir}/ocaml/stublibs/dll*.so
-%ifarch %{ocaml_native_compiler}
-%exclude %{_libdir}/ocaml/*.a
-%exclude %{_libdir}/ocaml/*.cmxa
-%exclude %{_libdir}/ocaml/*.cmx
-%endif
-%exclude %{_libdir}/ocaml/*.mli
-%files devel
+
+%files devel -f .ofiles-devel
%license LICENSE
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/*.a
-%{_libdir}/ocaml/*.cmxa
-%{_libdir}/ocaml/*.cmx
-%endif
-%{_libdir}/ocaml/*.mli
%changelog
+* Fri May 03 2024 Mykhailo Bykhovtsev - 1.5-1
+- Upgrade to 1.5
+- Converted spec file to match with Fedora 41.
+- use ocaml >= 5.1.1
+
* Fri Apr 29 2022 Pawel Winogrodzki - 1.3-2
- Fixing source URL.
diff --git a/SPECS/ocaml-ocamlbuild/ocaml-ocamlbuild.signatures.json b/SPECS/ocaml-ocamlbuild/ocaml-ocamlbuild.signatures.json
index 2dc18073543..5c7a3bb6936 100644
--- a/SPECS/ocaml-ocamlbuild/ocaml-ocamlbuild.signatures.json
+++ b/SPECS/ocaml-ocamlbuild/ocaml-ocamlbuild.signatures.json
@@ -1,5 +1,5 @@
{
"Signatures": {
- "ocaml-ocamlbuild-0.14.2.tar.gz": "62d2dab6037794c702a83ac584a7066d018cf1645370d1f3d5764c2b458791b1"
+ "ocaml-ocamlbuild-0.14.3.tar.gz": "ce151bfd2141abc6ee0b3f25ba609e989ff564a48bf795d6fa7138a4db0fc2e1"
}
}
diff --git a/SPECS/ocaml-ocamlbuild/ocaml-ocamlbuild.spec b/SPECS/ocaml-ocamlbuild/ocaml-ocamlbuild.spec
index fdbfe0e16c8..211fd06e494 100644
--- a/SPECS/ocaml-ocamlbuild/ocaml-ocamlbuild.spec
+++ b/SPECS/ocaml-ocamlbuild/ocaml-ocamlbuild.spec
@@ -4,7 +4,7 @@
Summary: Build tool for OCaml libraries and programs
Name: ocaml-ocamlbuild
-Version: 0.14.2
+Version: 0.14.3
Release: 1%{?dist}
License: GPLv2 WITH exceptions
Vendor: Microsoft Corporation
@@ -12,38 +12,46 @@ Distribution: Azure Linux
URL: https://github.com/ocaml/ocamlbuild
Source0: https://github.com/ocaml/ocamlbuild/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
-BuildRequires: ocaml >= 4.04.0
+BuildRequires: make
+BuildRequires: ocaml >= 5.1.1
+BuildRequires: ocaml-rpm-macros
+BuildRequires: ncurses
+BuildRequires: asciidoc
+BuildRequires: python3-pygments
-%description
-OCamlbuild is a build tool for building OCaml libraries and programs.
+# Ocamlbuild can invoke tput; see src/display.ml
+Requires: ncurses
-%package devel
-Summary: Development files for %{name}
-Requires: %{name}%{?_isa} = %{version}-%{release}
+# This can be removed when F42 reaches EOL
+Obsoletes: %{name}-devel < 0.14.0-37
+Provides: %{name}-devel = %{version}-%{release}
-%description devel
-This package contains development files for %{name}.
+%description
+OCamlbuild is a build tool for building OCaml libraries and programs.
%package doc
-Summary: Documentation for %{name}
-Requires: %{name}%{?_isa} = %{version}-%{release}
+Summary: Documentation for %{name}
+License: CC0
+BuildArch: noarch
%description doc
This package contains the manual for %{name}.
%prep
-%setup -q -n ocamlbuild-%{version}
-
+%autosetup -n ocamlbuild-%{version}
%build
make configure \
OCAMLBUILD_PREFIX=%{_prefix} \
OCAMLBUILD_BINDIR=%{_bindir} \
OCAMLBUILD_LIBDIR=%{_libdir}/ocaml \
+ OCAMLBUILD_MANDIR=%{_mandir} \
%ifarch %{ocaml_native_compiler}
- OCAML_NATIVE=true
+ OCAML_NATIVE=true \
+ OCAML_NATIVE_TOOLS=true
%else
- OCAML_NATIVE=false
+ OCAML_NATIVE=false \
+ OCAML_NATIVE_TOOLS=false
%endif
# Parallel builds fail.
@@ -56,15 +64,16 @@ make \
OCAMLOPT="ocamlopt -g"
%endif
+# Build the manual
+asciidoc manual/manual.adoc
+
%install
-make install \
- DESTDIR=%{buildroot} \
- CHECK_IF_PREINSTALLED=false
+%make_install CHECK_IF_PREINSTALLED=false
# The install copies ocamlbuild & ocamlbuild.{byte or native}.
# Symlink them instead.
-pushd %{buildroot}%{_bindir}
+pushd $RPM_BUILD_ROOT/usr/bin
%ifarch %{ocaml_native_compiler}
ln -sf ocamlbuild.native ocamlbuild
%else
@@ -72,47 +81,22 @@ ln -sf ocamlbuild.byte ocamlbuild
%endif
popd
-# Install the man page, which for some reason is not copied
-# in by the make install rule above.
-mkdir -p %{buildroot}%{_mandir}/man1/
-install -p -m 0644 man/ocamlbuild.1 %{buildroot}%{_mandir}/man1/
+%ocaml_files -n
-# Remove the META file. It will be replaced by ocaml-ocamlfind (findlib).
-rm %{buildroot}%{_libdir}/ocaml/ocamlbuild/META
-
-%files
+%files -f .ofiles
%doc Changes Readme.md VERSION
%license LICENSE
-%{_bindir}/ocamlbuild
-%{_bindir}/ocamlbuild.byte
-%ifarch %{ocaml_native_compiler}
-%{_bindir}/ocamlbuild.native
-%endif
-%{_mandir}/man1/ocamlbuild.1*
-%{_libdir}/ocaml/ocamlbuild
-%ifarch %{ocaml_native_compiler}
-%exclude %{_libdir}/ocaml/ocamlbuild/*.a
-%exclude %{_libdir}/ocaml/ocamlbuild/*.o
-%exclude %{_libdir}/ocaml/ocamlbuild/*.cmx
-%exclude %{_libdir}/ocaml/ocamlbuild/*.cmxa
-%endif
-%exclude %{_libdir}/ocaml/ocamlbuild/*.mli
-%files devel
-%license LICENSE
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/ocamlbuild/*.a
-%{_libdir}/ocaml/ocamlbuild/*.o
-%{_libdir}/ocaml/ocamlbuild/*.cmx
-%{_libdir}/ocaml/ocamlbuild/*.cmxa
-%endif
-%{_libdir}/ocaml/ocamlbuild/*.mli
%files doc
-%license LICENSE
-%doc manual/*
+%license manual/LICENSE
+%doc manual/manual.html
%changelog
+* Mon Apr 29 2024 Mykhailo Bykhovtsev - 0.14.3-1
+- Converted spec file to match with Fedora 41.
+- Upgrade to 0.14.3
+
* Fri Oct 27 2023 CBL-Mariner Servicing Account - 0.14.2-1
- Auto-upgrade to 0.14.2 - Azure Linux 3.0 - package upgrades
diff --git a/SPECS/ocaml-ocplib-endian/ocaml-ocplib-endian.signatures.json b/SPECS/ocaml-ocplib-endian/ocaml-ocplib-endian.signatures.json
index 2f4d49e892c..4975fed7299 100644
--- a/SPECS/ocaml-ocplib-endian/ocaml-ocplib-endian.signatures.json
+++ b/SPECS/ocaml-ocplib-endian/ocaml-ocplib-endian.signatures.json
@@ -1,5 +1,5 @@
{
"Signatures": {
- "ocplib-endian-1.1.tar.gz": "455b3dae8622eb9c4e99a52b8a6004b40294ab9112c50dad2ab1bf10eec1c563"
+ "ocplib-endian-1.2.tar.gz": "97ae74e8aeead46a0475df14af637ce78e2372c07258619ad8967506f2d4b320"
}
}
diff --git a/SPECS/ocaml-ocplib-endian/ocaml-ocplib-endian.spec b/SPECS/ocaml-ocplib-endian/ocaml-ocplib-endian.spec
index 387a3c98e5f..537f8b2f13c 100644
--- a/SPECS/ocaml-ocplib-endian/ocaml-ocplib-endian.spec
+++ b/SPECS/ocaml-ocplib-endian/ocaml-ocplib-endian.spec
@@ -1,38 +1,47 @@
+
+# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
+ExcludeArch: %{ix86}
+
+%ifnarch %{ocaml_native_compiler}
+%global debug_package %{nil}
+%endif
+
%global libname ocplib-endian
%global debug_package %{nil}
Summary: Functions to read/write int16/32/64 from strings, bigarrays
Name: ocaml-ocplib-endian
-Version: 1.1
-Release: 8%{?dist}
+Version: 1.2
+Release: 1%{?dist}
# License is LGPL 2.1 with standard OCaml exceptions
License: LGPLv2+ WITH exceptions
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://github.com/OCamlPro/ocplib-endian
-Source0: https://github.com/OCamlPro/ocplib-endian/archive/%{version}/ocplib-endian-%{version}.tar.gz
+Source0: %{url}/archive/%{version}/ocplib-endian-%{version}.tar.gz
+# Remove dependency on base-bytes
+Patch0: remove-base-byte.patch
-BuildRequires: ocaml >= 4.02.3
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-cppo >= 1.1.0
BuildRequires: ocaml-dune >= 1.0
%description
-Optimised functions to read and write int16/32/64 from strings,
+Optimized functions to read and write int16/32/64 from strings,
bytes and bigarrays, based on primitives added in version 4.01.
The library implements three modules:
-EndianString works directly on strings, and provides submodules
-BigEndian and LittleEndian, with their unsafe counter-parts;
-EndianBytes works directly on bytes, and provides submodules
-BigEndian and LittleEndian, with their unsafe counter-parts;
-EndianBigstring works on bigstrings (Bigarrays of chars),
-and provides submodules BigEndian and LittleEndian, with their
-unsafe counter-parts;
+- EndianString works directly on strings, and provides submodules
+ BigEndian and LittleEndian, with their unsafe counterparts;
+- EndianBytes works directly on bytes, and provides submodules
+ BigEndian and LittleEndian, with their unsafe counterparts;
+- EndianBigstring works on bigstrings (Bigarrays of chars),
+ and provides submodules BigEndian and LittleEndian, with their
+ unsafe counterparts.
%package devel
Summary: Development files for %{name}
-
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
@@ -40,61 +49,29 @@ The %{name}-devel package contains libraries and
signature files for developing applications that use %{name}.
%prep
-%autosetup -n %{libname}-%{version}
+%autosetup -n ocplib-endian-%{version} -p1
%build
-dune build %{?_smp_mflags}
+%dune_build
%install
-dune install --destdir=%{buildroot}
-
-# We install the documentation with the doc macro
-rm -fr %{buildroot}%{_prefix}/doc
+%dune_install
-# We do not want the ml files
-find %{buildroot}%{_libdir}/ocaml -name \*.ml -delete
+%check
+%dune_check
-# The tests currently fail, showing allocation of 54 words for all 3 tests.
-# The issue is known, but upstream's remedy does not work with OCaml 4.11.
-# See https://github.com/OCamlPro/ocplib-endian/issues/18
-#
-#%%check
-#dune runtest
-
-%files
+%files -f .ofiles
%license COPYING.txt
%doc README.md CHANGES.md
-%dir %{_libdir}/ocaml/%{libname}/
-%dir %{_libdir}/ocaml/%{libname}/bigstring/
-%{_libdir}/ocaml/%{libname}/META
-%{_libdir}/ocaml/%{libname}/*.cma
-%{_libdir}/ocaml/%{libname}/*.cmi
-%{_libdir}/ocaml/%{libname}/bigstring/*.cma
-%{_libdir}/ocaml/%{libname}/bigstring/*.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{libname}/*.cmxs
-%{_libdir}/ocaml/%{libname}/bigstring/*.cmxs
-%endif
-%files devel
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{libname}/*.a
-%{_libdir}/ocaml/%{libname}/*.cmxa
-%{_libdir}/ocaml/%{libname}/*.cmx
-%{_libdir}/ocaml/%{libname}/bigstring/*.a
-%{_libdir}/ocaml/%{libname}/bigstring/*.cmxa
-%{_libdir}/ocaml/%{libname}/bigstring/*.cmx
-%endif
-%{_libdir}/ocaml/%{libname}/*.mli
-%{_libdir}/ocaml/%{libname}/*.cmt
-%{_libdir}/ocaml/%{libname}/*.cmti
-%{_libdir}/ocaml/%{libname}/bigstring/*.mli
-%{_libdir}/ocaml/%{libname}/bigstring/*.cmt
-%{_libdir}/ocaml/%{libname}/bigstring/*.cmti
-%{_libdir}/ocaml/%{libname}/dune-package
-%{_libdir}/ocaml/%{libname}/opam
+%files devel -f .ofiles-devel
%changelog
+* Tue May 07 2024 Mykhailo Bykhovtsev - 1.2-1
+- Update to 1.2
+- Converted spec file to match with Fedora 41.
+- Use ocaml 5.1.1 to build
+
* Thu Mar 31 2022 Pawel Winogrodzki - 1.1-8
- Cleaning-up spec. License verified.
diff --git a/SPECS/ocaml-ocplib-endian/remove-base-byte.patch b/SPECS/ocaml-ocplib-endian/remove-base-byte.patch
new file mode 100644
index 00000000000..af24acd279f
--- /dev/null
+++ b/SPECS/ocaml-ocplib-endian/remove-base-byte.patch
@@ -0,0 +1,58 @@
+From fda4d5525063c8444020be369c63de23d39c246e Mon Sep 17 00:00:00 2001
+From: Marek Kubica
+Date: Mon, 27 Jun 2022 15:26:36 +0200
+Subject: [PATCH] Remove dependency on base-bytes
+
+Bytes has been part of the compiler since 4.02 and that's also the
+oldest version dune supports.
+---
+ ocplib-endian.opam | 1 -
+ src/dune | 5 ++---
+ tests/dune | 2 +-
+ 3 files changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/ocplib-endian.opam b/ocplib-endian.opam
+index 834740e..41f0d9a 100644
+--- a/ocplib-endian.opam
++++ b/ocplib-endian.opam
+@@ -14,7 +14,6 @@ homepage: "https://github.com/OCamlPro/ocplib-endian"
+ bug-reports: "https://github.com/OCamlPro/ocplib-endian/issues"
+ doc: "https://ocamlpro.github.io/ocplib-endian/ocplib-endian/"
+ depends: [
+- "base-bytes"
+ "ocaml" {>= "4.03.0"}
+ "cppo" {>= "1.1.0" & build}
+ "dune" {>= "1.0"}
+diff --git a/src/dune b/src/dune
+index a5b90d1..dc0bd0e 100644
+--- a/src/dune
++++ b/src/dune
+@@ -62,8 +62,7 @@
+ (synopsis "Optimised functions to read and write int16/32/64 from strings and bytes")
+ (wrapped false)
+ (ocamlopt_flags (:standard -inline 1000))
+- (modules endianString endianBytes)
+- (libraries bytes))
++ (modules endianString endianBytes))
+
+ (library
+ (name ocplib_endian_bigstring)
+@@ -72,4 +71,4 @@
+ (wrapped false)
+ (modules endianBigstring)
+ (ocamlopt_flags (:standard -inline 1000))
+- (libraries ocplib_endian bigarray bytes))
++ (libraries ocplib_endian bigarray))
+diff --git a/tests/dune b/tests/dune
+index e3e0f17..be4acad 100644
+--- a/tests/dune
++++ b/tests/dune
+@@ -17,7 +17,7 @@
+ (name tests)
+ (wrapped false)
+ (modules test_string test_bytes test_bigstring)
+- (libraries ocplib-endian ocplib-endian.bigstring bigarray bytes))
++ (libraries ocplib-endian ocplib-endian.bigstring bigarray))
+
+ (executables
+ (names test)
diff --git a/SPECS/ocaml-ounit/0001-Remove-stdlib-shims.patch b/SPECS/ocaml-ounit/0001-Remove-stdlib-shims.patch
new file mode 100644
index 00000000000..f525eca96a8
--- /dev/null
+++ b/SPECS/ocaml-ounit/0001-Remove-stdlib-shims.patch
@@ -0,0 +1,56 @@
+From fec0a725231d5769b3d3454687d6b0e1bd6b5e58 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones"
+Date: Tue, 5 May 2020 12:30:50 +0100
+Subject: [PATCH] Remove stdlib-shims and seq.
+
+We neither need nor want the stdlib-shims or seq packages in Fedora. They
+are forward compatibility package for older OCaml installations. Patch them
+out instead. Upstream does not want this patch until stdlib-shims and seq
+are obsolete.
+---
+ ounit2.opam | 1 -
+ src/lib/ounit2/advanced/dune | 2 +-
+ 2 files changed, 1 insertion(+), 2 deletions(-)
+
+--- a/ounit2-lwt.opam 2023-03-22 07:28:17.000000000 -0600
++++ b/ounit2-lwt.opam 2023-06-22 12:03:02.158210339 -0600
+@@ -14,7 +14,6 @@ depends: [
+ "dune" {>= "3.0"}
+ "ocaml" {>= "4.04.0"}
+ "lwt" {>= "2.5.2"}
+- "seq"
+ "ounit2" {= version}
+ "odoc" {with-doc}
+ ]
+--- a/ounit2.opam 2023-03-22 07:28:17.000000000 -0600
++++ b/ounit2.opam 2023-06-22 12:03:02.158210339 -0600
+@@ -17,8 +17,6 @@ depends: [
+ "dune" {>= "3.0"}
+ "ocaml" {>= "4.04.0"}
+ "base-unix"
+- "seq"
+- "stdlib-shims"
+ "odoc" {with-doc}
+ ]
+ build: [
+--- a/src/lib/ounit2/advanced/dune 2023-03-22 07:28:17.000000000 -0600
++++ b/src/lib/ounit2/advanced/dune 2023-06-22 12:03:02.158210339 -0600
+@@ -11,4 +11,4 @@
+ (name oUnitAdvanced)
+ (public_name ounit2.advanced)
+ (wrapped false)
+- (libraries unix seq stdlib-shims))
++ (libraries unix))
+--- a/src/lib/ounit2/dune 2023-03-22 07:28:17.000000000 -0600
++++ b/src/lib/ounit2/dune 2023-06-22 12:03:23.748882355 -0600
+@@ -2,7 +2,7 @@
+ (name oUnit)
+ (public_name ounit2)
+ (wrapped false)
+- (libraries unix seq ounit2.advanced))
++ (libraries unix ounit2.advanced))
+
+ (documentation
+ (package ounit2)
+--
+2.29.2
diff --git a/SPECS/ocaml-ounit/ocaml-ounit.signatures.json b/SPECS/ocaml-ounit/ocaml-ounit.signatures.json
index c6f40c5d833..0b75f77ab31 100644
--- a/SPECS/ocaml-ounit/ocaml-ounit.signatures.json
+++ b/SPECS/ocaml-ounit/ocaml-ounit.signatures.json
@@ -1,5 +1,5 @@
{
- "Signatures": {
- "ounit-v2.2.2.tbz": "53439ae8958d4016afd596d7afbe0b613163533761253e8c781d7afe3d6b9dc0"
- }
-}
+ "Signatures": {
+ "ounit-v2.2.7.tar.gz": "a067da09af075a6202bbd233e1e4ade46908c18c089caddd7398a859b95acbe7"
+ }
+}
\ No newline at end of file
diff --git a/SPECS/ocaml-ounit/ocaml-ounit.spec b/SPECS/ocaml-ounit/ocaml-ounit.spec
index b3fb0c1e43f..90b7c6dd09d 100644
--- a/SPECS/ocaml-ounit/ocaml-ounit.spec
+++ b/SPECS/ocaml-ounit/ocaml-ounit.spec
@@ -11,37 +11,20 @@
Summary: Unit test framework for OCaml
Name: ocaml-%{srcname}
-Version: 2.2.2
-Release: 6%{?dist}
+Version: 2.2.7
+Release: 1%{?dist}
License: MIT
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://github.com/gildor478/ounit
-Source0: %{url}/releases/download/v%{version}/%{srcname}-v%{version}.tbz
-# We neither need nor want the stdlib-shims package. It is a forward
-# compatibility package for older OCaml installations. Patch it out instead.
-# Upstream does not want this patch until stdlib-shims is obsolete.
-Patch0: %{name}-stdlib-shims.patch
-# Enable ocaml 4.13 compatibility. Source: Fedora 35
-# https://src.fedoraproject.org/rpms/ocaml-ounit/blob/f35/f/ounit-v2.2.4-remove-Thread-kill.patch
-Patch1: remove-thread-kill.patch
-
-# I believe this is actually caused by a missing Requires in another
-# package (perhaps lwt?). In any case without this the tests fail to
-# compile with:
-# /usr/bin/ld: cannot find -lev
-BuildRequires: libev-devel
-BuildRequires: ocaml >= 4.02.3
-BuildRequires: ocaml-dune >= 1.11.0
-BuildRequires: ocaml-findlib
-BuildRequires: ocaml-lwt-devel
-BuildRequires: ocaml-mmap-devel
-BuildRequires: ocaml-ocplib-endian-devel
-BuildRequires: ocaml-result-devel
+Source0: %{url}/archive/refs/tags/v%{version}.tar.gz#/%{srcname}-v%{version}.tar.gz
+# Remove seq and stdlib-shims downstream. Not needed in Fedora.
+Patch0001: 0001-Remove-stdlib-shims.patch
-%if %{with doc}
-BuildRequires: ocaml-odoc
-%endif
+BuildRequires: ocaml >= 5.1.1
+BuildRequires: ocaml-dune >= 3.0
+BuildRequires: ocaml-findlib
+BuildRequires: ocaml-lwt-devel >= 2.5.2
# The ounit name is now just an alias for ounit2
Provides: %{name}2 = %{version}-%{release}
@@ -52,144 +35,84 @@ unit-tests for OCaml code. It is loosely based on HUnit, a unit testing
framework for Haskell. It is similar to JUnit, and other xUnit testing
frameworks.
+
%package devel
Summary: Development files for %{name}
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}%{?_isa} = %{version}-%{release}
Provides: %{name}2-devel = %{version}-%{release}
+
%description devel
The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
+
%package lwt
Summary: Helper functions for building Lwt tests using OUnit
-Requires: %{name} = %{version}-%{release}
+Requires: %{name}%{?_isa} = %{version}-%{release}
Provides: %{name}2-lwt = %{version}-%{release}
+
%description lwt
This package contains helper functions for building Lwt tests using
OUnit.
+
%package lwt-devel
Summary: Development files for %{name}-lwt
-Requires: %{name}-devel = %{version}-%{release}
-Requires: %{name}-lwt = %{version}-%{release}
+Requires: %{name}-devel%{?_isa} = %{version}-%{release}
+Requires: %{name}-lwt%{?_isa} = %{version}-%{release}
Requires: ocaml-lwt-devel%{?_isa}
Provides: %{name}2-lwt-devel = %{version}-%{release}
+
%description lwt-devel
The %{name}-lwt-devel package contains libraries and signature
files for developing applications that use %{name}-lwt.
-%package doc
-Summary: Documentation for %{name}
-BuildArch: noarch
-
-%description doc
-Documentation for %{name}.
%prep
-%autosetup -n %{srcname}-v%{version} -p1
+%autosetup -n ounit-%{version} -p1
+
%build
-dune build %{?_smp_mflags}
-%if %{with doc}
-dune build %{?_smp_mflags} @doc
-%endif
+%dune_build
+
%check
-dune runtest
+%dune_check
-%install
-dune install --destdir=%{buildroot}
-%if %{with doc}
-# We do not want the dune markers
-find _build/default/_doc/_html -name .dune-keep -delete
-%endif
-
-# We install the documentation with the doc macro
-rm -fr %{buildroot}%{_prefix}/doc
+%install
+%dune_install -s
-%ifarch %{ocaml_native_compiler}
-# Add missing executable bits
-find %{buildroot}%{_libdir}/ocaml -name \*.cmxs -exec chmod a+x {} \+
-%endif
-%files
+%files -f .ofiles-ounit2
%doc CHANGES.md README.md
%license LICENSE.txt
-%dir %{_libdir}/ocaml/%{srcname}/
-%dir %{_libdir}/ocaml/%{srcname}2/
-%dir %{_libdir}/ocaml/%{srcname}2/advanced/
-%dir %{_libdir}/ocaml/%{srcname}2/threads/
-%{_libdir}/ocaml/%{srcname}2/threads/.private/
-%{_libdir}/ocaml/%{srcname}/META
-%{_libdir}/ocaml/%{srcname}2/META
-%{_libdir}/ocaml/%{srcname}2/*.cma
-%{_libdir}/ocaml/%{srcname}2/*.cmi
-%{_libdir}/ocaml/%{srcname}2/*/*.cma
-%{_libdir}/ocaml/%{srcname}2/*/*.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}2/*.cmxs
-%{_libdir}/ocaml/%{srcname}2/*/*.cmxs
-%endif
+%dir %{ocamldir}/ounit/
+%{ocamldir}/ounit/META
-%files devel
-%{_libdir}/ocaml/%{srcname}/dune-package
-%{_libdir}/ocaml/%{srcname}/opam
-%{_libdir}/ocaml/%{srcname}2/dune-package
-%{_libdir}/ocaml/%{srcname}2/opam
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}2/*.a
-%{_libdir}/ocaml/%{srcname}2/*.cmx
-%{_libdir}/ocaml/%{srcname}2/*.cmxa
-%{_libdir}/ocaml/%{srcname}2/*/*.a
-%{_libdir}/ocaml/%{srcname}2/*/*.cmx
-%{_libdir}/ocaml/%{srcname}2/*/*.cmxa
-%endif
-%{_libdir}/ocaml/%{srcname}2/*.cmt
-%{_libdir}/ocaml/%{srcname}2/*.cmti
-%{_libdir}/ocaml/%{srcname}2/*.ml
-%{_libdir}/ocaml/%{srcname}2/*.mli
-%{_libdir}/ocaml/%{srcname}2/*/*.cmt
-%{_libdir}/ocaml/%{srcname}2/*/*.cmti
-%{_libdir}/ocaml/%{srcname}2/*/*.ml
-%{_libdir}/ocaml/%{srcname}2/*/*.mli
-
-%files lwt
-%dir %{_libdir}/ocaml/%{srcname}-lwt/
-%dir %{_libdir}/ocaml/%{srcname}2-lwt/
-%{_libdir}/ocaml/%{srcname}-lwt/META
-%{_libdir}/ocaml/%{srcname}2-lwt/META
-%{_libdir}/ocaml/%{srcname}2-lwt/oUnitLwt.cma
-%{_libdir}/ocaml/%{srcname}2-lwt/oUnitLwt.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}2-lwt/oUnitLwt.cmxs
-%endif
-%files lwt-devel
-%{_libdir}/ocaml/%{srcname}-lwt/dune-package
-%{_libdir}/ocaml/%{srcname}-lwt/opam
-%{_libdir}/ocaml/%{srcname}2-lwt/dune-package
-%{_libdir}/ocaml/%{srcname}2-lwt/opam
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}2-lwt/oUnitLwt.a
-%{_libdir}/ocaml/%{srcname}2-lwt/oUnitLwt.cmx
-%{_libdir}/ocaml/%{srcname}2-lwt/oUnitLwt.cmxa
-%endif
-%{_libdir}/ocaml/%{srcname}2-lwt/oUnitLwt.cmt
-%{_libdir}/ocaml/%{srcname}2-lwt/oUnitLwt.ml
-
-%if %{with doc}
-%files doc
-%doc _build/default/_doc/_html/
-%doc _build/default/_doc/_mlds/
-%doc _build/default/_doc/_odoc/
-%license LICENSE.txt
-%endif
+%files devel -f .ofiles-ounit2-devel
+%{ocamldir}/ounit/dune-package
+%{ocamldir}/ounit/opam
+
+
+%files lwt -f .ofiles-ounit2-lwt
+%dir %{ocamldir}/ounit-lwt/
+%{ocamldir}/ounit-lwt/META
+
+
+%files lwt-devel -f .ofiles-ounit2-lwt-devel
+%{ocamldir}/ounit-lwt/dune-package
+%{ocamldir}/ounit-lwt/opam
%changelog
+* Mon Apr 29 2024 Mykhailo Bykhovtsev - 2.2.7-1
+- Converted spec file to match with Fedora 41.
+- Upgraded to 2.2.7
+
* Thu Mar 31 2022 Pawel Winogrodzki - 2.2.2-6
- Cleaning-up spec. License verified.
diff --git a/SPECS/ocaml-parsexp/ocaml-parsexp.signatures.json b/SPECS/ocaml-parsexp/ocaml-parsexp.signatures.json
new file mode 100644
index 00000000000..005b360b434
--- /dev/null
+++ b/SPECS/ocaml-parsexp/ocaml-parsexp.signatures.json
@@ -0,0 +1,5 @@
+{
+ "Signatures": {
+ "parsexp-0.16.0.tar.gz": "859db54b077f606ce550dfac468c399f3a14d32a4ac60da166d403fe57836e9f"
+ }
+}
diff --git a/SPECS-EXTENDED/ocaml-parsexp/ocaml-parsexp.spec b/SPECS/ocaml-parsexp/ocaml-parsexp.spec
similarity index 76%
rename from SPECS-EXTENDED/ocaml-parsexp/ocaml-parsexp.spec
rename to SPECS/ocaml-parsexp/ocaml-parsexp.spec
index e9c767ed628..86071a704d1 100644
--- a/SPECS-EXTENDED/ocaml-parsexp/ocaml-parsexp.spec
+++ b/SPECS/ocaml-parsexp/ocaml-parsexp.spec
@@ -1,5 +1,3 @@
-Vendor: Microsoft Corporation
-Distribution: Azure Linux
%ifnarch %{ocaml_native_compiler}
%global debug_package %{nil}
%endif
@@ -7,18 +5,18 @@ Distribution: Azure Linux
%global srcname parsexp
Name: ocaml-%{srcname}
-Version: 0.15.0
+Version: 0.16.0
Release: 1%{?dist}
Summary: S-expression parsing library
-
License: MIT
+Vendor: Microsoft Corporation
+Distribution: Azure Linux
URL: https://github.com/janestreet/parsexp
Source0: %{url}/archive/v%{version}/%{srcname}-%{version}.tar.gz
-BuildRequires: ocaml >= 4.08.0
-BuildRequires: ocaml-base-devel >= 0.15
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-dune >= 2.0.0
-BuildRequires: ocaml-sexplib0-devel >= 0.15
+BuildRequires: ocaml-sexplib0-devel >= 0.16
%description
This library provides generic parsers for parsing S-expressions from
@@ -44,57 +42,35 @@ parsexp_io.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
-Requires: ocaml-base-devel%{?_isa}
+Requires: ocaml-sexplib0-devel%{?_isa}
%description devel
The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
%prep
-%autosetup -n %{srcname}-%{version}
+%autosetup -n parsexp-%{version}
%build
-dune build %{?_smp_mflags}
+%dune_build
%install
-dune install --destdir=%{buildroot}
-
-# We install the documentation with the doc macro
-rm -fr %{buildroot}%{_prefix}/doc
-
-%ifarch %{ocaml_native_compiler}
-# Add missing executable bits
-find %{buildroot}%{_libdir}/ocaml -name \*.cmxs -exec chmod 0755 {} \+
-%endif
+%dune_install
%check
-dune runtest
+%dune_check
-%files
+%files -f .ofiles
%doc CHANGES.md README.org
%license LICENSE.md
-%dir %{_libdir}/ocaml/%{srcname}/
-%{_libdir}/ocaml/%{srcname}/META
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cma
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmxs
-%endif
-%files devel
-%{_libdir}/ocaml/%{srcname}/dune-package
-%{_libdir}/ocaml/%{srcname}/opam
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.a
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmx
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmxa
-%endif
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmt
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmti
-%{_libdir}/ocaml/%{srcname}/*.ml
-%{_libdir}/ocaml/%{srcname}/*.mli
+%files devel -f .ofiles-devel
%changelog
+* Thu May 02 2024 Mykhailo Bykhovtsev - 0.16.0-1
+- Converted spec file to match with Fedora 41.
+- Upgraded to version 0.16.0
+
* Tue Jan 18 2022 Thomas Crain - 0.15.0-1
- Upgrade to latest version
- License verified
diff --git a/SPECS/ocaml-pp/ocaml-pp.signatures.json b/SPECS/ocaml-pp/ocaml-pp.signatures.json
new file mode 100644
index 00000000000..7df982d0a89
--- /dev/null
+++ b/SPECS/ocaml-pp/ocaml-pp.signatures.json
@@ -0,0 +1,5 @@
+{
+ "Signatures": {
+ "pp-1.2.0.tar.gz": "dcc74bf324fa5e739d28d42ac1548134a29c8646984476614b6639ee42bc2fce"
+ }
+}
\ No newline at end of file
diff --git a/SPECS/ocaml-pp/ocaml-pp.spec b/SPECS/ocaml-pp/ocaml-pp.spec
new file mode 100644
index 00000000000..8b090a64e87
--- /dev/null
+++ b/SPECS/ocaml-pp/ocaml-pp.spec
@@ -0,0 +1,208 @@
+%ifnarch %{ocaml_native_compiler}
+%global debug_package %{nil}
+%endif
+
+# This package is needed to build dune. To avoid circular dependencies, this
+# package cannot depend on dune, or any package that depends on dune.
+# Therefore, we:
+# - hack up our own build, rather than using dune to do the build
+# - skip tests, which require ppx_expect, which is built with dune
+# If you know what you are doing, build with dune anyway using this conditional.
+%bcond_with dune
+
+Name: ocaml-pp
+Version: 1.2.0
+Release: 7%{?dist}
+Summary: Pretty printing library for OCaml
+License: MIT
+Vendor: Microsoft Corporation
+Distribution: Azure Linux
+URL: https://github.com/ocaml-dune/pp
+Source0: %{url}/archive/refs/tags/%{version}.tar.gz#/pp-%{version}.tar.gz
+
+BuildRequires: ocaml >= 5.1.1
+%if %{with dune}
+BuildRequires: ocaml-dune >= 2.0
+%else
+BuildRequires: ocaml-rpm-macros
+%endif
+
+%description
+This library provides a lean alternative to the Format [1] module of the
+OCaml standard library. It aims to make it easy for users to do the
+right thing. If you have tried Format before but find its API
+complicated and difficult to use, then Pp might be a good choice for
+you.
+
+Pp uses the same concepts of boxes and break hints, and the final
+rendering is done by formatter from the Format module. However it
+defines its own algebra which some might find easier to work with and
+reason about. No previous knowledge is required to start using this
+library, however the various guides for the Format module such as this
+one [2] should be applicable to Pp as well.
+
+[1]: https://caml.inria.fr/pub/docs/manual-ocaml/libref/Format.html
+[2]: https://caml.inria.fr/resources/doc/guides/format.en.html
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+The %{name}-devel package contains libraries and signature files for
+developing applications that use %{name}.
+
+%prep
+%autosetup -n pp-%{version}
+
+%build
+%if %{with dune}
+%dune_build
+%else
+OFLAGS="-w -40 -g"
+OCFLAGS="$OFLAGS -bin-annot"
+cd src
+ocamlc $OCFLAGS -no-alias-deps -o pp.cmi -c -intf pp.mli
+ocamlc $OCFLAGS -intf-suffix .ml -no-alias-deps -o pp.cmo -c -impl pp.ml
+ocamlc $OFLAGS -a -o pp.cma pp.cmo
+%ifarch %{ocaml_native_compiler}
+ocamlopt $OFLAGS -intf-suffix .ml -no-alias-deps -o pp.cmx -c -impl pp.ml
+ocamlopt $OFLAGS -a -o pp.cmxa pp.cmx
+ocamlopt $OFLAGS -shared -linkall -I . -o pp.cmxs pp.cmxa
+%endif
+%endif
+
+%install
+%if %{with dune}
+%dune_install
+%else
+# Install without dune. See comment at the top.
+mkdir -p %{buildroot}%{ocamldir}/pp
+cp -p src/pp.{cma,cmi,cmt,cmti,mli} %{buildroot}%{ocamldir}/pp
+%ifarch %{ocaml_native_compiler}
+cp -p src/pp.{a,cmx,cmxa,cmxs} %{buildroot}%{ocamldir}/pp
+%endif
+cp -p pp.opam %{buildroot}%{ocamldir}/pp/opam
+
+cat >> %{buildroot}%{ocamldir}/pp/META << EOF
+version = "%{version}"
+description = "Pretty printing library for OCaml"
+requires = ""
+archive(byte) = "pp.cma"
+%ifarch %{ocaml_native_compiler}
+archive(native) = "pp.cmxa"
+%endif
+plugin(byte) = "pp.cma"
+%ifarch %{ocaml_native_compiler}
+plugin(native) = "pp.cmxs"
+%endif
+EOF
+
+cat >> %{buildroot}%{ocamldir}/pp/dune-package << EOF
+(lang dune 3.12)
+(name pp)
+(version %{version})
+(sections (lib .) (libexec .) (doc ../../doc/pp))
+(files
+ (lib
+ (META
+ dune-package
+ opam
+ pp.a
+ pp.cma
+ pp.cmi
+ pp.cmt
+ pp.cmti
+ pp.cmx
+%ifarch %{ocaml_native_compiler}
+ pp.cmxa
+%endif
+ pp.ml
+ pp.mli))
+%ifarch %{ocaml_native_compiler}
+ (libexec (pp.cmxs))
+%endif
+ (doc (CHANGES.md LICENSE.md README.md)))
+(library
+ (name pp)
+ (kind normal)
+%ifarch %{ocaml_native_compiler}
+ (archives (byte pp.cma) (native pp.cmxa))
+ (plugins (byte pp.cma) (native pp.cmxs))
+ (native_archives pp.a)
+%else
+ (archives (byte pp.cma))
+ (plugins (byte pp.cma))
+%endif
+ (main_module_name Pp)
+%ifarch %{ocaml_native_compiler}
+ (modes byte native)
+%else
+ (modes byte)
+%endif
+ (modules
+ (singleton
+ (obj_name pp)
+ (visibility public)
+ (source (path Pp) (intf (path pp.mli)) (impl (path pp.ml))))))
+EOF
+%ocaml_files
+%endif
+
+%files -f .ofiles
+%doc CHANGES.md README.md
+%license LICENSE.md
+
+%files devel -f .ofiles-devel
+
+%changelog
+* Mon Apr 29 2024 Mykhailo Bykhovtsev - 1.2.0-7
+- Initial Azure Linux import from Fedora 41 (license: MIT)
+- License verified
+
+* Thu Jan 25 2024 Fedora Release Engineering - 1.2.0-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Sun Jan 21 2024 Fedora Release Engineering - 1.2.0-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Mon Dec 18 2023 Richard W.M. Jones - 1.2.0-4
+- OCaml 5.1.1 + s390x code gen fix for Fedora 40
+
+* Tue Dec 12 2023 Richard W.M. Jones - 1.2.0-3
+- OCaml 5.1.1 rebuild for Fedora 40
+
+* Thu Oct 05 2023 Richard W.M. Jones - 1.2.0-2
+- OCaml 5.1 rebuild for Fedora 40
+
+* Wed Oct 4 2023 Jerry James - 1.2.0-1
+- Version 1.2.0
+
+* Thu Jul 20 2023 Fedora Release Engineering - 1.1.2-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
+
+* Tue Jul 11 2023 Richard W.M. Jones - 1.1.2-7
+- OCaml 5.0 rebuild for Fedora 39
+
+* Mon Jul 10 2023 Jerry James - 1.1.2-6
+- OCaml 5.0.0 rebuild
+- Support building without dune
+
+* Tue Jan 24 2023 Richard W.M. Jones - 1.1.2-5
+- Rebuild OCaml packages for F38
+
+* Thu Jan 19 2023 Fedora Release Engineering - 1.1.2-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+
+* Fri Jul 22 2022 Fedora Release Engineering - 1.1.2-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
+* Wed Jul 20 2022 Jerry James - 1.1.2-2
+- Drop explicit python3 dependency
+
+* Thu Jun 30 2022 Jerry James - 1.1.2-2
+- Drop support for building without dune
+- Temporarily add python3 dependency until dune 3.x is bootstrapped
+
+* Tue Jun 28 2022 Jerry James - 1.1.2-1
+- Initial RPM
\ No newline at end of file
diff --git a/SPECS/ocaml-ppx-derivers/ocaml-ppx-derivers.spec b/SPECS/ocaml-ppx-derivers/ocaml-ppx-derivers.spec
index 73c4c2c50af..45846856f43 100644
--- a/SPECS/ocaml-ppx-derivers/ocaml-ppx-derivers.spec
+++ b/SPECS/ocaml-ppx-derivers/ocaml-ppx-derivers.spec
@@ -1,7 +1,7 @@
Summary: Deriving plugin registry
Name: ocaml-ppx-derivers
Version: 1.2.1
-Release: 19%{?dist}
+Release: 20%{?dist}
License: BSD
Vendor: Microsoft Corporation
Distribution: Azure Linux
@@ -10,65 +10,53 @@ Source0: https://github.com/ocaml-ppx/ppx_derivers/archive/%{version}/%{n
BuildRequires: ocaml
BuildRequires: ocaml-dune
-BuildRequires: ocaml-findlib
%description
Ppx_derivers is a tiny package whose sole purpose is to allow
ppx_deriving and ppx_type_conv to inter-operate gracefully when
linked as part of the same ocaml-migrate-parsetree driver.
+
%package devel
Summary: Development files for %{name}
-
Requires: %{name}%{?_isa} = %{version}-%{release}
+
%description devel
The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
+
%prep
-%setup -q -n ppx_derivers-%{version}
+%autosetup -n ppx_derivers-%{version}
+
%build
-dune build @install
+%dune_build
-%install
-mkdir -p %{buildroot}%{_libdir}/ocaml
-dune install --destdir=%{buildroot} --verbose
-# These files will be installed using the doc and license directives
-rm -r %{buildroot}%{_prefix}/doc
+%install
+%dune_install
-# Makes *.cmxs executable such that they will be stripped.
-find %{buildroot} -name '*.cmxs' -exec chmod 0755 {} \;
%check
-dune runtest
+%dune_check
+
-%files
+%files -f .ofiles
%doc README.md CHANGES.md
%license LICENSE.md
-%{_libdir}/ocaml/*
-%ifarch %{ocaml_native_compiler}
-%exclude %{_libdir}/ocaml/*/*.a
-%exclude %{_libdir}/ocaml/*/*.cmxa
-%exclude %{_libdir}/ocaml/*/*.cmx
-%endif
-%exclude %{_libdir}/ocaml/*/*.mli
-%exclude %{_libdir}/ocaml/*/*.ml
-
-%files devel
+
+
+%files devel -f .ofiles-devel
%doc README.md CHANGES.md
%license LICENSE.md
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/*/*.a
-%{_libdir}/ocaml/*/*.cmxa
-%{_libdir}/ocaml/*/*.cmx
-%endif
-%{_libdir}/ocaml/*/*.mli
-%{_libdir}/ocaml/*/*.ml
%changelog
+* Wed May 01 2024 Mykhailo Bykhovtsev - 1.2.1-20
+- Converted spec file to match with Fedora 41.
+- Removing not needed build requirement and updating the build process
+
* Thu Mar 31 2022 Pawel Winogrodzki - 1.2.1-19
- Cleaning-up spec. License verified.
diff --git a/SPECS/ocaml-ppx-here/ocaml-ppx-here.signatures.json b/SPECS/ocaml-ppx-here/ocaml-ppx-here.signatures.json
new file mode 100644
index 00000000000..5cb66d4758c
--- /dev/null
+++ b/SPECS/ocaml-ppx-here/ocaml-ppx-here.signatures.json
@@ -0,0 +1,5 @@
+{
+ "Signatures": {
+ "ppx_here-0.16.0.tar.gz": "072fd8ce903ce95ff75ddcca4898d250fe7a5d276b3011b67df1473d9ef95669"
+ }
+}
diff --git a/SPECS/ocaml-ppx-here/ocaml-ppx-here.spec b/SPECS/ocaml-ppx-here/ocaml-ppx-here.spec
new file mode 100644
index 00000000000..1c1636a87d5
--- /dev/null
+++ b/SPECS/ocaml-ppx-here/ocaml-ppx-here.spec
@@ -0,0 +1,167 @@
+# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
+ExcludeArch: %{ix86}
+
+Name: ocaml-ppx-here
+Version: 0.16.0
+Release: 10%{?dist}
+Summary: Expands [@here] into its location
+License: MIT
+Vendor: Microsoft Corporation
+Distribution: Azure Linux
+URL: https://github.com/janestreet/ppx_here
+Source0: %{url}/archive/v%{version}/ppx_here-%{version}.tar.gz
+
+BuildRequires: ocaml >= 5.1.1
+BuildRequires: ocaml-base-devel >= 0.16
+BuildRequires: ocaml-dune >= 2.0.0
+BuildRequires: ocaml-ppxlib-devel >= 0.31.0
+
+%description
+Ppx_here is a ppx rewriter that defines an extension node whose value is
+its source position.
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: ocaml-base-devel%{?_isa}
+Requires: ocaml-ppxlib-devel%{?_isa}
+
+%description devel
+The %{name}-devel package contains libraries and signature
+files for developing applications that use %{name}.
+
+%prep
+%autosetup -n ppx_here-%{version}
+
+%build
+%dune_build
+
+%install
+%dune_install
+
+%check
+# We do not run the tests from a directory named ppx containing ppx_here.
+# Adapt the test to running inside of the ppx_here directory.
+sed -e 's,dummy\.ml\.pp,dummy.pp.ml,g' \
+ -e 's,\\"ppx/ppx_here/test/dummy\.mll\\",test/dummy.mll,' \
+ -i test/dune
+
+%dune_check
+
+%files -f .ofiles
+%doc README.md
+%license LICENSE.md
+
+%files devel -f .ofiles-devel
+
+%changelog
+* Wed May 01 2024 Mykhailo Bykhovtsev - 0.16.0-10
+- Initial Azure Linux import from Fedora 41 (license: MIT)
+- License Verified
+
+* Mon Jan 29 2024 Richard W.M. Jones - 0.16.0-9
+- Bump and rebuild
+
+* Thu Jan 25 2024 Fedora Release Engineering - 0.16.0-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Sun Jan 21 2024 Fedora Release Engineering - 0.16.0-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Mon Dec 18 2023 Richard W.M. Jones - 0.16.0-6
+- OCaml 5.1.1 + s390x code gen fix for Fedora 40
+
+* Tue Dec 12 2023 Richard W.M. Jones - 0.16.0-5
+- OCaml 5.1.1 rebuild for Fedora 40
+
+* Thu Oct 05 2023 Richard W.M. Jones - 0.16.0-4
+- OCaml 5.1 rebuild for Fedora 40
+
+* Thu Jul 20 2023 Fedora Release Engineering - 0.16.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
+
+* Tue Jul 11 2023 Richard W.M. Jones - 0.16.0-2
+- OCaml 5.0 rebuild for Fedora 39
+
+* Mon Jul 10 2023 Jerry James - 0.16.0-1
+- Version 0.16.0
+
+* Tue Jan 24 2023 Richard W.M. Jones - 0.15.0-11
+- Rebuild OCaml packages for F38
+
+* Thu Jan 19 2023 Fedora Release Engineering - 0.15.0-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+
+* Tue Nov 1 2022 Jerry James - 0.15.0-9
+- Rebuild for ocaml-ppxlib 0.28.0
+
+* Thu Aug 18 2022 Jerry James - 0.15.0-8
+- Rebuild for ocaml-ppxlib 0.27.0
+
+* Fri Jul 22 2022 Fedora Release Engineering - 0.15.0-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
+* Wed Jul 20 2022 Jerry James - 0.15.0-6
+- Use new OCaml macros
+
+* Sat Jun 18 2022 Richard W.M. Jones - 0.15.0-6
+- OCaml 4.14.0 rebuild
+
+* Mon Feb 28 2022 Jerry James - 0.15.0-5
+- Version 0.15.0 rerelease
+
+* Fri Feb 04 2022 Richard W.M. Jones - 0.15.0-4
+- OCaml 4.13.1 rebuild to remove package notes
+
+* Thu Feb 3 2022 Jerry James - 0.15.0-3
+- Conditionally build docs to avoid circular dependency on odoc
+
+* Thu Jan 20 2022 Fedora Release Engineering - 0.15.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
+* Mon Dec 27 2021 Jerry James - 0.15.0-2
+- Rebuild for ocaml-ppxlib 0.24.0
+
+* Tue Nov 30 2021 Jerry James - 0.15.0-1
+- Version 0.15.0
+
+* Tue Oct 05 2021 Richard W.M. Jones - 0.14.0-13
+- OCaml 4.13.1 build
+
+* Wed Sep 1 2021 Jerry James - 0.14.0-12
+- Rebuild for ocaml-ppxlib 0.23.0
+
+* Thu Jul 29 2021 Jerry James - 0.14.0-11
+- Rebuild for ocaml-ppxlib 0.22.2
+
+* Thu Jul 22 2021 Fedora Release Engineering - 0.14.0-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Tue Jun 22 2021 Jerry James - 0.14.0-9
+- Rebuild for ocaml-ppxlib 0.22.1
+- There is no circular dependency, so build with ocaml-odoc always
+
+* Mon Mar 1 17:37:09 GMT 2021 Richard W.M. Jones - 0.14.0-8
+- OCaml 4.12.0 build
+- Make the ocaml-odoc dependency conditional.
+
+* Sat Feb 20 2021 Jerry James - 0.14.0-7
+- Rebuild for ocaml-base 0.14.1
+
+* Wed Feb 3 2021 Richard W.M. Jones - 0.14.0-6
+- Bump and rebuild for updated ocaml Dynlink dependency.
+
+* Tue Jan 26 2021 Fedora Release Engineering - 0.14.0-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Mon Dec 7 2020 Jerry James - 0.14.0-4
+- Rebuild for ocaml-ppxlib 0.15.0
+
+* Tue Sep 01 2020 Richard W.M. Jones - 0.14.0-3
+- OCaml 4.11.1 rebuild
+
+* Fri Aug 21 2020 Richard W.M. Jones - 0.14.0-2
+- OCaml 4.11.0 rebuild
+
+* Fri Jun 19 2020 Jerry James - 0.14.0-1
+- Initial RPM
\ No newline at end of file
diff --git a/SPECS/ocaml-ppx-let/ocaml-ppx-let.signatures.json b/SPECS/ocaml-ppx-let/ocaml-ppx-let.signatures.json
new file mode 100644
index 00000000000..bd75bd284a4
--- /dev/null
+++ b/SPECS/ocaml-ppx-let/ocaml-ppx-let.signatures.json
@@ -0,0 +1,5 @@
+{
+ "Signatures": {
+ "ppx_let-0.16.0.tar.gz": "8ccc4f27668e9daf613f6dc779bcd9bdc6cd678826cd35c401be65566c436043"
+ }
+}
diff --git a/SPECS/ocaml-ppx-let/ocaml-ppx-let.spec b/SPECS/ocaml-ppx-let/ocaml-ppx-let.spec
new file mode 100644
index 00000000000..a0d6a3c264a
--- /dev/null
+++ b/SPECS/ocaml-ppx-let/ocaml-ppx-let.spec
@@ -0,0 +1,139 @@
+# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
+ExcludeArch: %{ix86}
+
+Name: ocaml-ppx-let
+Version: 0.16.0
+Release: 10%{?dist}
+Summary: Monadic let-bindings for OCaml
+License: MIT
+Vendor: Microsoft Corporation
+Distribution: Azure Linux
+URL: https://github.com/janestreet/ppx_let
+Source0: %{url}/archive/v%{version}/ppx_let-%{version}.tar.gz
+BuildRequires: ocaml >= 5.1.1
+BuildRequires: ocaml-base-devel >= 0.16
+BuildRequires: ocaml-dune >= 2.0.0
+BuildRequires: ocaml-ppx-here-devel >= 0.16
+BuildRequires: ocaml-ppxlib-devel >= 0.31.0
+
+%description
+Ppx_let is a ppx rewriter for monadic and applicative let bindings,
+match expressions, and if expressions.
+
+The aim of this rewriter is to make monadic and applicative code look
+nicer by writing custom binders the same way that we normally bind
+variables. In OCaml, the common way to bind the result of a computation
+to a variable is:
+
+ let VAR = EXPR in BODY
+
+ppx_let simply adds two new binders: let%%bind and let%%map. These are
+rewritten into calls to the bind and map functions respectively. These
+functions are expected to have
+
+ val map : 'a t -> f:('a -> 'b) -> 'b t
+ val bind : 'a t -> f:('a -> 'b t) -> 'b t
+
+for some type t, as one might expect.
+
+These functions are to be provided by the user, and are generally
+expected to be part of the signatures of monads and applicatives
+modules. This is the case for all monads and applicatives defined by
+the Jane Street's Core suite of libraries.
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: ocaml-base-devel%{?_isa}
+Requires: ocaml-ppx-here-devel%{?_isa}
+Requires: ocaml-ppxlib-devel%{?_isa}
+
+%description devel
+The %{name}-devel package contains libraries and signature
+files for developing applications that use %{name}.
+
+%prep
+%autosetup -n ppx_let-%{version}
+
+%build
+%dune_build
+
+%install
+%dune_install
+
+%check
+%dune_check
+
+%files -f .ofiles
+%doc CHANGES.md README.md
+%license LICENSE.md
+
+%files devel -f .ofiles-devel
+
+%changelog
+* Wed May 01 2024 Mykhailo Bykhovtsev - 0.16.0-10
+- Initial Azure Linux import from Fedora 41 (license: MIT)
+- License Verified
+
+* Mon Jan 29 2024 Richard W.M. Jones - 0.16.0-9
+- Bump and rebuild
+
+* Thu Jan 25 2024 Fedora Release Engineering - 0.16.0-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Sun Jan 21 2024 Fedora Release Engineering - 0.16.0-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Mon Dec 18 2023 Richard W.M. Jones - 0.16.0-6
+- OCaml 5.1.1 + s390x code gen fix for Fedora 40
+
+* Tue Dec 12 2023 Richard W.M. Jones - 0.16.0-5
+- OCaml 5.1.1 rebuild for Fedora 40
+
+* Thu Oct 05 2023 Richard W.M. Jones - 0.16.0-4
+- OCaml 5.1 rebuild for Fedora 40
+
+* Thu Jul 20 2023 Fedora Release Engineering - 0.16.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
+
+* Tue Jul 11 2023 Richard W.M. Jones - 0.16.0-2
+- OCaml 5.0 rebuild for Fedora 39
+
+* Mon Jul 10 2023 Jerry James - 0.16.0-1
+- Version 0.16.0
+
+* Tue Jan 24 2023 Richard W.M. Jones - 0.15.0-10
+- Rebuild OCaml packages for F38
+
+* Thu Jan 19 2023 Fedora Release Engineering - 0.15.0-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+
+* Tue Nov 1 2022 Jerry James - 0.15.0-8
+- Rebuild for ocaml-ppxlib 0.28.0
+
+* Thu Aug 18 2022 Jerry James - 0.15.0-7
+- Rebuild for ocaml-ppxlib 0.27.0
+
+* Fri Jul 22 2022 Fedora Release Engineering - 0.15.0-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
+* Wed Jul 20 2022 Jerry James - 0.15.0-5
+- Use new OCaml macros
+
+* Sat Jun 18 2022 Richard W.M. Jones - 0.15.0-5
+- OCaml 4.14.0 rebuild
+
+* Mon Feb 28 2022 Jerry James - 0.15.0-4
+- Version 0.15.0 rerelease
+
+* Fri Feb 04 2022 Richard W.M. Jones - 0.15.0-3
+- OCaml 4.13.1 rebuild to remove package notes
+
+* Thu Feb 3 2022 Jerry James - 0.15.0-2
+- Conditionally build docs to avoid circular dependency on odoc
+
+* Thu Jan 20 2022 Fedora Release Engineering - 0.15.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
+* Fri Dec 31 2021 Jerry James - 0.15.0-1
+- Initial RPM
\ No newline at end of file
diff --git a/SPECS/ocaml-ppxlib/ocaml-ppxlib-stdlib-shims.patch b/SPECS/ocaml-ppxlib/ocaml-ppxlib-stdlib-shims.patch
index 30b3477cb52..2bae370320f 100644
--- a/SPECS/ocaml-ppxlib/ocaml-ppxlib-stdlib-shims.patch
+++ b/SPECS/ocaml-ppxlib/ocaml-ppxlib-stdlib-shims.patch
@@ -1,5 +1,5 @@
---- a/ast/dune 2021-08-31 06:52:05.000000000 -0600
-+++ b/ast/dune 2021-09-01 09:24:02.193068151 -0600
+--- a/ast/dune.orig 2023-06-20 02:51:14.000000000 -0600
++++ b/ast/dune 2023-06-22 10:20:37.555218092 -0600
@@ -5,7 +5,7 @@
(library
(name ppxlib_ast)
@@ -9,36 +9,36 @@
(flags
(:standard -safe-string)
-w
---- a/dune-project 2021-08-31 06:52:05.000000000 -0600
-+++ b/dune-project 2021-09-01 09:25:13.279201740 -0600
+--- a/dune-project.orig 2023-06-20 02:51:14.000000000 -0600
++++ b/dune-project 2023-06-22 10:20:37.555218092 -0600
@@ -20,7 +20,6 @@
- (ocaml-compiler-libs (>= v0.11.0))
(ppx_derivers (>= 1.0))
(sexplib0 (>= v0.12))
+ (sexplib0 (and :with-test (>= "v0.15"))) ; Printexc.register_printer in sexplib0 changed
- stdlib-shims
(ocamlfind :with-test)
(re (and :with-test (>= 1.9.0)))
- (cinaps (and :with-test (>= v0.12.1)))
---- a/metaquot_lifters/dune 2021-08-31 06:52:05.000000000 -0600
-+++ b/metaquot_lifters/dune 2021-09-01 09:25:29.440232074 -0600
+ (cinaps (and :with-test (>= v0.12.1))))
+--- a/metaquot_lifters/dune.orig 2023-06-20 02:51:14.000000000 -0600
++++ b/metaquot_lifters/dune 2023-06-22 10:20:37.555218092 -0600
@@ -3,4 +3,4 @@
(public_name ppxlib.metaquot_lifters)
(flags
(:standard -safe-string))
- (libraries ppxlib ppxlib_traverse_builtins stdppx stdlib-shims))
+ (libraries ppxlib ppxlib_traverse_builtins stdppx))
---- a/ppxlib.opam 2021-08-31 06:52:05.000000000 -0600
-+++ b/ppxlib.opam 2021-09-01 09:24:15.993094078 -0600
-@@ -25,7 +25,6 @@ depends: [
- "ocaml-compiler-libs" {>= "v0.11.0"}
+--- a/ppxlib.opam.orig 2023-06-20 02:51:14.000000000 -0600
++++ b/ppxlib.opam 2023-06-22 10:20:37.555218092 -0600
+@@ -26,7 +26,6 @@ depends: [
"ppx_derivers" {>= "1.0"}
"sexplib0" {>= "v0.12"}
+ "sexplib0" {with-test & >= "v0.15"}
- "stdlib-shims"
"ocamlfind" {with-test}
"re" {with-test & >= "1.9.0"}
"cinaps" {with-test & >= "v0.12.1"}
---- a/src/dune 2021-08-31 06:52:05.000000000 -0600
-+++ b/src/dune 2021-09-01 09:24:44.977148546 -0600
+--- a/src/dune.orig 2023-06-20 02:51:14.000000000 -0600
++++ b/src/dune 2023-06-22 10:20:37.555218092 -0600
@@ -9,7 +9,6 @@
ppx_derivers
ppxlib_traverse_builtins
@@ -47,16 +47,16 @@
sexplib0)
(flags
(:standard -safe-string))
---- a/src/gen/dune 2021-08-31 06:52:05.000000000 -0600
-+++ b/src/gen/dune 2021-09-01 09:24:57.866172770 -0600
+--- a/src/gen/dune.orig 2023-06-20 02:51:14.000000000 -0600
++++ b/src/gen/dune 2023-06-22 10:20:37.556218077 -0600
@@ -2,4 +2,4 @@
(names gen_ast_pattern gen_ast_builder)
(flags
(:standard -safe-string))
- (libraries ppxlib_ast astlib ppxlib_traverse_builtins stdppx stdlib-shims))
+ (libraries ppxlib_ast astlib ppxlib_traverse_builtins stdppx))
---- a/stdppx/dune 2021-08-31 06:52:05.000000000 -0600
-+++ b/stdppx/dune 2021-09-01 09:24:34.025127963 -0600
+--- a/stdppx/dune.orig 2023-06-20 02:51:14.000000000 -0600
++++ b/stdppx/dune 2023-06-22 10:20:37.556218077 -0600
@@ -1,6 +1,6 @@
(library
(name stdppx)
@@ -65,8 +65,8 @@
+ (libraries sexplib0)
(flags
(:standard -safe-string)))
---- a/traverse/dune 2021-08-31 06:52:05.000000000 -0600
-+++ b/traverse/dune 2021-09-01 09:23:48.745042886 -0600
+--- a/traverse/dune.orig 2023-06-20 02:51:14.000000000 -0600
++++ b/traverse/dune 2023-06-22 10:20:37.556218077 -0600
@@ -4,6 +4,6 @@
(kind ppx_deriver)
(flags
diff --git a/SPECS/ocaml-ppxlib/ocaml-ppxlib.signatures.json b/SPECS/ocaml-ppxlib/ocaml-ppxlib.signatures.json
index 3f0b4e5741c..fbf21ceabaa 100644
--- a/SPECS/ocaml-ppxlib/ocaml-ppxlib.signatures.json
+++ b/SPECS/ocaml-ppxlib/ocaml-ppxlib.signatures.json
@@ -1,5 +1,5 @@
{
"Signatures": {
- "ppxlib-0.24.0.tbz": "7766027c2ecd0f5b3b460e9212a70709c6744278113eb91f317c56c41e7a90c8"
+ "ppxlib-0.31.0.tar.gz": "0723f1385e7baaecb89ab43cd11f03fe36663d6e2bd54bf889d518c8b5cc5f29"
}
}
diff --git a/SPECS/ocaml-ppxlib/ocaml-ppxlib.spec b/SPECS/ocaml-ppxlib/ocaml-ppxlib.spec
index 1bf83deeb87..72cb68698b2 100644
--- a/SPECS/ocaml-ppxlib/ocaml-ppxlib.spec
+++ b/SPECS/ocaml-ppxlib/ocaml-ppxlib.spec
@@ -10,28 +10,24 @@
Summary: Base library and tools for ppx rewriters
Name: ocaml-%{srcname}
-Version: 0.24.0
-Release: 3%{?dist}
+Version: 0.31.0
+Release: 1%{?dist}
License: MIT
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://github.com/ocaml-ppx/ppxlib
-Source0: https://github.com/ocaml-ppx/ppxlib/releases/download/%{version}/%{srcname}-%{version}.tbz
-# We do not have 'stdlib-shims'.
+Source0: https://github.com/ocaml-ppx/ppxlib/archive/refs/tags/%{version}.tar.gz#/%{srcname}-%{version}.tar.gz
+# We do not have stdlib-shims
Patch0: %{name}-stdlib-shims.patch
-Patch1: test-fix-sexplib0-0.15.0.patch
-
-BuildRequires: ocaml >= 4.04.1
-BuildRequires: ocaml-base-devel
+
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-cinaps-devel >= 0.12.1
BuildRequires: ocaml-compiler-libs-janestreet-devel >= 0.11.0
BuildRequires: ocaml-dune >= 2.7
BuildRequires: ocaml-findlib
-BuildRequires: ocaml-migrate-parsetree-devel >= 2.1.0
BuildRequires: ocaml-ppx-derivers-devel >= 1.0
BuildRequires: ocaml-re-devel >= 1.9.0
-BuildRequires: ocaml-sexplib0-devel >= 0.15.0
-BuildRequires: ocaml-stdio-devel
+BuildRequires: ocaml-sexplib0-devel >= 0.15
%if %{with doc}
BuildRequires: ocaml-odoc
@@ -50,114 +46,42 @@ projects. It features:
- a quotation mechanism for writing values representing OCaml AST in the
OCaml syntax;
- a generator of open recursion classes from type definitions.
-
+
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: ocaml-compiler-libs-janestreet-devel%{?_isa}
-Requires: ocaml-migrate-parsetree-devel%{?_isa}
Requires: ocaml-ppx-derivers-devel%{?_isa}
Requires: ocaml-sexplib0-devel%{?_isa}
-
+
%description devel
The %{name}-devel package contains libraries and
signature files for developing applications that use
%{name}.
-
-%if %{with doc}
-%package doc
-Summary: Documentation for %{name}
-BuildArch: noarch
-
-%description doc
-Documentation for %{name}.
-%endif
-
+
%prep
-%autosetup -n %{srcname}-%{version} -p1
-
+%autosetup -n ppxlib-%{version} -p1
+
%build
-dune build %{?_smp_mflags}
-
-%if %{with doc}
-dune build %{?_smp_mflags} @doc
-%endif
+%dune_build
%install
-dune install --destdir=%{buildroot}
-
-%if %{with doc}
-# We do not want the dune markers
-find _build/default/_doc/_html -name .dune-keep -delete
-%endif
-
-# We do not want the ml files
-find %{buildroot}%{_libdir}/ocaml -name \*.ml -delete
-
-# We install the documentation with the doc macro
-rm -fr %{buildroot}%{_prefix}/doc
-
-%ifarch %{ocaml_native_compiler}
-# Add missing executable bits
-find %{buildroot}%{_libdir}/ocaml -name \*.cmxs -exec chmod a+x {} \+
-%endif
-
-# We do not want to install the test binaries
-rm -fr %{buildroot}%{_bindir}
+%dune_install
%check
-dune runtest
+%dune_check
-%files
+%files -f .ofiles
%doc CHANGES.md HISTORY.md README.md
%license LICENSE.md
-%dir %{_libdir}/ocaml/%{srcname}/
-%dir %{_libdir}/ocaml/%{srcname}/ast/
-%dir %{_libdir}/ocaml/%{srcname}/metaquot/
-%dir %{_libdir}/ocaml/%{srcname}/metaquot_lifters/
-%dir %{_libdir}/ocaml/%{srcname}/print_diff/
-%dir %{_libdir}/ocaml/%{srcname}/runner/
-%dir %{_libdir}/ocaml/%{srcname}/runner_as_ppx/
-%dir %{_libdir}/ocaml/%{srcname}/traverse/
-%dir %{_libdir}/ocaml/%{srcname}/traverse_builtins/
-%{_libdir}/ocaml/%{srcname}/META
-%{_libdir}/ocaml/%{srcname}/*.cma
-%{_libdir}/ocaml/%{srcname}/*.cmi
-%{_libdir}/ocaml/%{srcname}/*/*.cma
-%{_libdir}/ocaml/%{srcname}/*/*.cmi
-%{_libdir}/ocaml/%{srcname}/*/*.exe
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/*.cmxs
-%{_libdir}/ocaml/%{srcname}/*/*.cmxs
-%endif
-
-%files devel
-%{_libdir}/ocaml/%{srcname}/dune-package
-%{_libdir}/ocaml/%{srcname}/opam
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/*.a
-%{_libdir}/ocaml/%{srcname}/*.cmx
-%{_libdir}/ocaml/%{srcname}/*.cmxa
-%{_libdir}/ocaml/%{srcname}/*/*.a
-%{_libdir}/ocaml/%{srcname}/*/*.cmx
-%{_libdir}/ocaml/%{srcname}/*/*.cmxa
-%endif
-%{_libdir}/ocaml/%{srcname}/*.cmt
-%{_libdir}/ocaml/%{srcname}/*.cmti
-%{_libdir}/ocaml/%{srcname}/*.mli
-%{_libdir}/ocaml/%{srcname}/*/*.cmt
-%{_libdir}/ocaml/%{srcname}/*/*.cmti
-%{_libdir}/ocaml/%{srcname}/*/*.mli
-
-%if %{with doc}
-%files doc
-%doc _build/default/_doc/_html/
-%doc _build/default/_doc/_mlds/
-%doc _build/default/_doc/_odoc/
-%license LICENSE.md
-%endif
+
+%files devel -f .ofiles-devel
%changelog
+* Wed May 01 2024 Mykhailo Bykhovtsev - 0.31.0-1
+- Converted spec file to match with Fedora 41.
+- Upgrade to 0.31.0
+
* Fri May 19 2023 Olivia Crain - 0.24.0-3
- Add upstream patch to fix tests with ocaml-sexplib0-0.15.0
- Remove %%{arm} arch gating on tests (not supported by Mariner)
diff --git a/SPECS/ocaml-re/ocaml-re-remove-seq.patch b/SPECS/ocaml-re/ocaml-re-remove-seq.patch
new file mode 100644
index 00000000000..7ecb337bcf8
--- /dev/null
+++ b/SPECS/ocaml-re/ocaml-re-remove-seq.patch
@@ -0,0 +1,18 @@
+--- a/lib/dune 2022-04-27 12:13:14.000000000 -0600
++++ b/lib/dune 2022-04-28 07:55:56.663747337 -0600
+@@ -1,5 +1,4 @@
+ (library
+ (name re)
+ (synopsis "Pure OCaml regular expression library")
+- (libraries seq)
+ (public_name re))
+--- a/re.opam 2022-04-27 12:13:14.000000000 -0600
++++ b/re.opam 2022-04-28 07:55:56.663747337 -0600
+@@ -23,7 +23,6 @@ depends: [
+ "ocaml" {>= "4.03"}
+ "dune" {>= "2.0"}
+ "ounit" {with-test}
+- "seq"
+ ]
+
+ synopsis: "RE is a regular expression library for OCaml"
diff --git a/SPECS/ocaml-re/ocaml-re.signatures.json b/SPECS/ocaml-re/ocaml-re.signatures.json
index 973a3d221a8..3b6e9af739f 100644
--- a/SPECS/ocaml-re/ocaml-re.signatures.json
+++ b/SPECS/ocaml-re/ocaml-re.signatures.json
@@ -1,5 +1,5 @@
{
"Signatures": {
- "ocaml-re-1.9.0.tar.gz": "4a2408bb270e0d1aef101d6b5edfeec6753874a6bcf54eb43d9fd3a7ddd777c1"
+ "ocaml-re-1.11.0.tar.gz": "e32660b6068b78a8588ca065a6a2b01ae7339584d8261356beac0e26dbc5f854"
}
}
diff --git a/SPECS/ocaml-re/ocaml-re.spec b/SPECS/ocaml-re/ocaml-re.spec
index 5020e5a925b..aff03cbc009 100644
--- a/SPECS/ocaml-re/ocaml-re.spec
+++ b/SPECS/ocaml-re/ocaml-re.spec
@@ -1,26 +1,26 @@
-%ifarch %{ocaml_native_compiler}
-%global native_compiler 1
-%else
-%global native_compiler 0
+%ifnarch %{ocaml_native_compiler}
+%global debug_package %{nil}
%endif
-
Summary: A regular expression library for OCaml
Name: ocaml-re
-Version: 1.9.0
-Release: 21%{?dist}
+Version: 1.11.0
+Release: 1%{?dist}
License: LGPLv2+ WITH exceptions
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://github.com/ocaml/ocaml-re
-Source0: https://github.com/ocaml/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
+Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
-BuildRequires: ocaml
+# Fedora's OCaml is new enough that we don't need the seq compatibility library
+Patch0: %{name}-remove-seq.patch
+
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-dune
-BuildRequires: ocaml-findlib
-BuildRequires: ocaml-ocamlbuild
-BuildRequires: ocaml-ocamldoc
-BuildRequires: ocaml-seq-devel
-
+
+%if %{with_check}
+BuildRequires: ocaml-ounit-devel
+%endif
+
%description
A pure OCaml regular expression library. Supports Perl-style regular
expressions, Posix extended regular expressions, Emacs-style regular
@@ -28,63 +28,43 @@ expressions, and shell-style file globbing. It is also possible to
build regular expressions by combining simpler regular expressions.
There is also a subset of the PCRE interface available in the Re.pcre
library.
-
+
%package devel
Summary: Development files for %{name}
-
Requires: %{name}%{?_isa} = %{version}-%{release}
-# https://bugzilla.redhat.com/show_bug.cgi?id=1792031
-Requires: ocaml-seq-devel
-
+
%description devel
The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
-
+
%prep
-%setup -q -n ocaml-re-%{version}
-
+%autosetup -p1
+
+# Fix the ounit name
+sed -i 's/oUnit/ounit2/' lib_test/fort_unit/dune
+
%build
-dune build -p re --verbose %{?_smp_mflags}
+%dune_build
%install
+%dune_install
-# jbuilder/dune 1.0+ supports installing without opam-installer,
-# which means in theory we could do something like the below even for
-# "ocaml critical path" packages (e.g. dependencies of opam and opam-installer).
-
-# However... in this package it seems to stop RPM from finding debug info
-# correctly. I am not sure why. :(
-
-#export OCAMLFIND_DESTDIR=$RPM_BUILD_ROOT%{_libdir}/ocaml
-#mkdir -p $OCAMLFIND_DESTDIR
-#jbuilder install --destdir %{buildroot}
-#rm -r %{buildroot}/doc/re/
-
-# So use the "manual jbuilder install" technique instead.
-mkdir -p %{buildroot}%{_libdir}/ocaml
-cp -aLr _build/install/default/lib/* %{buildroot}%{_libdir}/ocaml/
-
-%files
+%check
+%dune_check
+
+%files -f .ofiles
%doc CHANGES.md
%doc README.md
%license LICENSE.md
-%{_libdir}/ocaml/re
-%if %{native_compiler}
-%exclude %{_libdir}/ocaml/re/*.a
-%exclude %{_libdir}/ocaml/re/*.cmxa
-%exclude %{_libdir}/ocaml/re/*.cmx
-%endif
-%exclude %{_libdir}/ocaml/re/*.mli
-
-%files devel
-%if %{native_compiler}
-%{_libdir}/ocaml/re/*.a
-%{_libdir}/ocaml/re/*.cmx
-%{_libdir}/ocaml/re/*.cmxa
-%endif
-%{_libdir}/ocaml/re/*.mli
+
+%files devel -f .ofiles-devel
%changelog
+* Fri May 03 2024 Mykhailo Bykhovtsev - 1.11.0-1
+- Converted spec file to match with Fedora 41.
+- Upgrade to 1.11.0
+- Use ocaml >= 5.1.1 to build
+
* Thu Mar 31 2022 Pawel Winogrodzki - 1.9.0-21
- Cleaning-up spec. License verified.
diff --git a/SPECS/ocaml-react/ocaml-react.signatures.json b/SPECS/ocaml-react/ocaml-react.signatures.json
index a2204625773..897495b0bdd 100644
--- a/SPECS/ocaml-react/ocaml-react.signatures.json
+++ b/SPECS/ocaml-react/ocaml-react.signatures.json
@@ -1,5 +1,5 @@
{
"Signatures": {
- "react-1.2.1.tbz": "7b2c5c078cc659dcd2202e5d89628df592c5e843b7e8f357b63db5f6d2e148aa"
+ "react-1.2.2.tbz": "c4add315d6f1f153d115ee7ca8dd60c1265ff4d408c266125fcb5124fd228f99"
}
}
diff --git a/SPECS/ocaml-react/ocaml-react.spec b/SPECS/ocaml-react/ocaml-react.spec
index bb39e37166b..619b070ceac 100644
--- a/SPECS/ocaml-react/ocaml-react.spec
+++ b/SPECS/ocaml-react/ocaml-react.spec
@@ -1,85 +1,81 @@
Summary: OCaml framework for Functional Reactive Programming (FRP)
Name: ocaml-react
-Version: 1.2.1
-Release: 8%{?dist}
+Version: 1.2.2
+Release: 1%{?dist}
License: ISC
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://erratique.ch/software/react
-Source0: http://erratique.ch/software/react/releases/react-%{version}.tbz
+Source0: %{url}/releases/react-%{version}.tbz
-BuildRequires: ocaml >= 4.01.0
-BuildRequires: ocaml-findlib-devel
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-ocamlbuild
+BuildRequires: ocaml-findlib
BuildRequires: ocaml-ocamldoc
-BuildRequires: ocaml-topkg-devel >= 0.9.0
+BuildRequires: ocaml-rpm-macros
+BuildRequires: ocaml-topkg-devel >= 1.0.3
+# Do not require ocaml-compiler-libs at runtime
+%global __ocaml_requires_opts -i Asttypes -i Build_path_prefix_map -i Cmi_format -i Env -i Ident -i Identifiable -i Load_path -i Location -i Longident -i Misc -i Outcometree -i Parsetree -i Path -i Primitive -i Shape -i Subst -i Toploop -i Type_immediacy -i Types -i Warnings
+
+
%description
React is an OCaml module for functional reactive programming (FRP). It
provides support to program with time varying values : declarative
events and signals. React doesn't define any primitive event or
signal; it lets the client choose the concrete timeline.
-
+
React is made of a single, independent module and distributed under
the ISC license.
-
+
Given an absolute notion of time Rtime helps you to manage a timeline
and provides time stamp events, delayed events and delayed signals.
-
+
+
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
-
+
+
%description devel
The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
-
+
+
%prep
%autosetup -n react-%{version}
-
+
# require debug info
echo $'\ntrue: debug' >> _tags
-
+
+# expose a math library dependency to RPM
+echo $'\ntrue: cclib(-lm)' >> _tags
+
+
%build
ocaml pkg/pkg.ml build --tests true
-
+
+
%install
-mkdir -p %{buildroot}%{_libdir}/ocaml/react
-for f in \
- pkg/META \
- opam \
-%ifarch %{ocaml_native_compiler}
- src/*.cmx \
-%endif
- src/*.{a,cma,cmi,mli,cmxa,cmxs}
-do
- cp -p _build/$f %{buildroot}%{_libdir}/ocaml/react/
-done
-
+%ocaml_install
+
%check
ocaml pkg/pkg.ml test
-
-%files
+
+
+%files -f .ofiles
%license LICENSE.md
-%dir %{_libdir}/ocaml/react/
-%{_libdir}/ocaml/react/META
-%{_libdir}/ocaml/react/*.cma
-%{_libdir}/ocaml/react/*.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/react/*.cmxs
-%endif
-
-%files devel
+
+
+%files devel -f .ofiles-devel
%doc CHANGES.md README.md
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/react/*.a
-%{_libdir}/ocaml/react/*.cmx
-%{_libdir}/ocaml/react/*.cmxa
-%endif
-%{_libdir}/ocaml/react/*.mli
-%{_libdir}/ocaml/react/opam
%changelog
+* Mon May 06 2024 Mykhailo Bykhovtsev - 1.2.2-1
+- Converted spec file to match with Fedora 41.
+- Upgrade to 1.2.2
+- Use ocaml 5.1.1 to build and update other build requirements
+
* Thu Mar 31 2022 Pawel Winogrodzki - 1.2.1-8
- Cleaning-up spec. License verified.
diff --git a/SPECS/ocaml-sexplib/ocaml-sexplib.signatures.json b/SPECS/ocaml-sexplib/ocaml-sexplib.signatures.json
new file mode 100644
index 00000000000..9b20b0fa4d6
--- /dev/null
+++ b/SPECS/ocaml-sexplib/ocaml-sexplib.signatures.json
@@ -0,0 +1,5 @@
+{
+ "Signatures": {
+ "sexplib-0.16.0.tar.gz": "02d0542527191f99f7b2fde684386bfca086d8f8e42e8488561bcd269a6a5472"
+ }
+}
diff --git a/SPECS-EXTENDED/ocaml-sexplib/ocaml-sexplib.spec b/SPECS/ocaml-sexplib/ocaml-sexplib.spec
similarity index 84%
rename from SPECS-EXTENDED/ocaml-sexplib/ocaml-sexplib.spec
rename to SPECS/ocaml-sexplib/ocaml-sexplib.spec
index 624498b4fcc..8cb3b33910a 100644
--- a/SPECS-EXTENDED/ocaml-sexplib/ocaml-sexplib.spec
+++ b/SPECS/ocaml-sexplib/ocaml-sexplib.spec
@@ -1,31 +1,34 @@
-Vendor: Microsoft Corporation
-Distribution: Azure Linux
%ifnarch %{ocaml_native_compiler}
%global debug_package %{nil}
%endif
-%bcond_with vim
-
%global srcname sexplib
Name: ocaml-%{srcname}
-Version: 0.15.0
+Version: 0.16.0
Release: 1%{?dist}
Summary: Automated S-expression conversion
-
# The project as a whole is MIT, but code in the src subdirectory is BSD.
License: MIT and BSD
+Vendor: Microsoft Corporation
+Distribution: Azure Linux
URL: https://github.com/janestreet/%{srcname}
Source0: %{url}/archive/v%{version}/%{srcname}-%{version}.tar.gz
-BuildRequires: ocaml >= 4.04.2
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-dune >= 2.0.0
-BuildRequires: ocaml-findlib
BuildRequires: ocaml-num-devel
-BuildRequires: ocaml-parsexp-devel
-BuildRequires: ocaml-sexplib0-devel
-%if %{with vim}
-BuildRequires: vim-filesystem
+BuildRequires: ocaml-parsexp-devel >= 0.16
+BuildRequires: ocaml-sexplib0-devel >= 0.16
+BuildRequires: vim-rpm-macros
+
+%if %{with_check}
+BuildRequires: ocaml-base-devel
+BuildRequires: ocaml-base-quickcheck-devel
+BuildRequires: ocaml-core-kernel-devel
+BuildRequires: ocaml-expect-test-helpers-core-devel
+BuildRequires: ocaml-ppx-jane-devel
+BuildRequires: ocaml-sexp-grammar-validation-devel
%endif
%description
@@ -37,94 +40,50 @@ Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: ocaml-num-devel%{?_isa}
Requires: ocaml-parsexp-devel%{?_isa}
+Requires: ocaml-sexplib0-devel%{?_isa}
%description devel
The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
-%if %{with vim}
%package vim
Summary: Support for sexplib syntax in vim
Requires: %{name}%{?_isa} = %{version}-%{release}
-Requires: vim-filesystem
+Requires: vim
%description vim
This package contains a vim syntax file for Sexplib.
-%endif
%prep
-%autosetup -n %{srcname}-%{version}
+%autosetup -n sexplib-%{version}
%build
-dune build %{?_smp_mflags}
+%dune_build
%install
-dune install --destdir=%{buildroot}
+%dune_install
-%if %{with vim}
# Install the vim support
mkdir -p %{buildroot}%{vimfiles_root}/syntax
cp -p vim/syntax/sexplib.vim %{buildroot}%{vimfiles_root}/syntax
-%endif
-# We install the documentation with the doc macro
-rm -fr %{buildroot}%{_prefix}/doc
+%check
+%dune_check
-%ifarch %{ocaml_native_compiler}
-# Add missing executable bits
-find %{buildroot}%{_libdir}/ocaml -name \*.cmxs -exec chmod 0755 {} \+
-%endif
-
-%files
+%files -f .ofiles
%doc CHANGES.md README.org
%license COPYRIGHT.txt LICENSE.md LICENSE-Tywith.txt THIRD-PARTY.txt
-%dir %{_libdir}/ocaml/%{srcname}/
-%dir %{_libdir}/ocaml/%{srcname}/num/
-%dir %{_libdir}/ocaml/%{srcname}/unix/
-%{_libdir}/ocaml/%{srcname}/META
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cma
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmi
-%{_libdir}/ocaml/%{srcname}/num/*.cma
-%{_libdir}/ocaml/%{srcname}/num/*.cmi
-%{_libdir}/ocaml/%{srcname}/unix/*.cma
-%{_libdir}/ocaml/%{srcname}/unix/*.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmxs
-%{_libdir}/ocaml/%{srcname}/num/*.cmxs
-%{_libdir}/ocaml/%{srcname}/unix/*.cmxs
-%endif
-%files devel
-%{_libdir}/ocaml/%{srcname}/dune-package
-%{_libdir}/ocaml/%{srcname}/opam
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.a
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmx
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmxa
-%{_libdir}/ocaml/%{srcname}/num/*.a
-%{_libdir}/ocaml/%{srcname}/num/*.cmx
-%{_libdir}/ocaml/%{srcname}/num/*.cmxa
-%{_libdir}/ocaml/%{srcname}/unix/*.a
-%{_libdir}/ocaml/%{srcname}/unix/*.cmx
-%{_libdir}/ocaml/%{srcname}/unix/*.cmxa
-%endif
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmt
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmti
-%{_libdir}/ocaml/%{srcname}/*.ml
-%{_libdir}/ocaml/%{srcname}/*.mli
-%{_libdir}/ocaml/%{srcname}/num/*.cmt
-%{_libdir}/ocaml/%{srcname}/num/*.cmti
-%{_libdir}/ocaml/%{srcname}/num/*.ml
-%{_libdir}/ocaml/%{srcname}/num/*.mli
-%{_libdir}/ocaml/%{srcname}/unix/*.cmt
-%{_libdir}/ocaml/%{srcname}/unix/*.ml
-
-%if %{with vim}
+%files devel -f .ofiles-devel
+
%files vim
%{vimfiles_root}/syntax/sexplib.vim
-%endif
%changelog
+* Wed May 01 2024 Mykhailo Bykhovtsev - 0.16.0-1
+- Converted spec file to match with Fedora 41.
+- Upgrade to 0.16.0
+
* Tue Jan 18 2022 Thomas Crain - 0.15.0-1
- Upgrade to latest version
- License verified
diff --git a/SPECS/ocaml-sexplib0/ocaml-sexplib0.spec b/SPECS/ocaml-sexplib0/ocaml-sexplib0.spec
index b19b8b50f8d..eff1a2755a0 100644
--- a/SPECS/ocaml-sexplib0/ocaml-sexplib0.spec
+++ b/SPECS/ocaml-sexplib0/ocaml-sexplib0.spec
@@ -7,16 +7,15 @@
Summary: Definition of S-expressions and some base converters
Name: ocaml-%{srcname}
Version: 0.16.0
-Release: 1%{?dist}
+Release: 2%{?dist}
License: MIT
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://github.com/janestreet/sexplib0
Source0: %{url}/archive/v%{version}/%{srcname}-%{version}.tar.gz
-BuildRequires: ocaml >= 4.04.2
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-dune >= 2.0.0
-BuildRequires: ocaml-findlib
%description
This package contains a library with the definition of S-expressions and
@@ -31,49 +30,25 @@ The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
%prep
-%autosetup -n %{srcname}-%{version}
+%autosetup -n sexplib0-%{version}
%build
-dune build %{?_smp_mflags}
-
-# TODO: Once odoc is available, BR it and run this to generate documentation:
-# dune build @doc
+%dune_build
%install
-dune install --destdir=%{buildroot}
-
-# We install the documentation with the doc macro
-rm -fr %{buildroot}%{_prefix}/doc
-
-%ifarch %{ocaml_native_compiler}
-# Add missing executable bits
-chmod a+x %{buildroot}%{_libdir}/ocaml/%{srcname}/%{srcname}.cmxs
-%endif
+%dune_install
-%files
+%files -f .ofiles
%license LICENSE.md
-%dir %{_libdir}/ocaml/%{srcname}/
-%{_libdir}/ocaml/%{srcname}/META
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cma
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmxs
-%endif
-%files devel
-%{_libdir}/ocaml/%{srcname}/dune-package
-%{_libdir}/ocaml/%{srcname}/opam
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.a
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmx
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmxa
-%endif
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmt
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmti
-%{_libdir}/ocaml/%{srcname}/*.ml
-%{_libdir}/ocaml/%{srcname}/*.mli
+%files devel -f .ofiles-devel
%changelog
+* Fri May 03 2024 Mykhailo Bykhovtsev - 0.16.0-2
+- Converted spec file to match with Fedora 41.
+- Updated build requirements to use ocaml >= 5.1.1
+- Removed ocaml-findlib build req
+
* Mon Nov 06 2023 CBL-Mariner Servicing Account - 0.16.0-1
- Auto-upgrade to 0.16.0 - Azure Linux 3.0 - package upgrades
diff --git a/SPECS/ocaml-srpm-macros/macros.ocaml-srpm b/SPECS/ocaml-srpm-macros/macros.ocaml-srpm
new file mode 100644
index 00000000000..04fc35a1deb
--- /dev/null
+++ b/SPECS/ocaml-srpm-macros/macros.ocaml-srpm
@@ -0,0 +1,49 @@
+# Note that OCaml is compiled on all architectures. However
+# on some (rare) architectures, only bytecode compilation is
+# available. Use these macros to find out if native code
+# compilation is available on a particular architecture.
+# Architectures that support the OCaml native code compiler.
+%ocaml_native_compiler aarch64 riscv64 s390x x86_64
+# Architectures that support native dynamic linking of OCaml code.
+%ocaml_natdynlink aarch64 riscv64 s390x x86_64
+# Architectures that support profiling of native code (ocamlopt -p).
+# This was removed in OCaml 4.09.
+# https://github.com/ocaml/ocaml/pull/2314
+%ocaml_native_profiling %{nil}
+# Toplevel OCaml directory
+%ocamldir %{_libdir}/ocaml
+# Common elements for all OCaml packages.
+#
+# ExcludeArch: OCaml packages have not been built on i686 since OCaml 5 was
+# introduced in Fedora 39.
+# -d: most OCaml packages have no ELF objects when built on a bytecode-only
+# architecture, so debuginfo generation is suppressed. Use this flag to
+# enable a debuginfo package on such architectures; i.e., when the package
+# contains an ELF object even on bytecode-only architectures.
+%ocaml_pkg(d) %{lua:
+ print("ExcludeArch: %{ix86}\\n")
+ if not opt.d then
+ local arch = rpm.expand("%{_target_cpu}")
+ local native = rpm.expand("%{ocaml_native_compiler}")
+ if not string.find(native, arch) then
+ rpm.define('debug_package %{nil}')
+ end
+ end
+}
+# Generate %package and %files definitions for a doc subpackage,
+# containing content generated by odoc.
+# Use on the top-level only, preferably just before %prep.
+#
+# Options:
+# -L: specify the license file name. Example:
+# %odoc_package -L LICENSE
+%odoc_package(L:) %{expand:
+%package doc
+BuildArch: noarch
+BuildRequires: ocaml-odoc
+Summary: Documentation for %{name}
+%description doc
+Developer documentation for %{name}.
+%files doc
+%doc _build/default/_doc/_html/*
+%{?-L:%%license %{-L*} %*}}
diff --git a/SPECS/ocaml-srpm-macros/ocaml-srpm-macros.signatures.json b/SPECS/ocaml-srpm-macros/ocaml-srpm-macros.signatures.json
new file mode 100644
index 00000000000..8689edaa258
--- /dev/null
+++ b/SPECS/ocaml-srpm-macros/ocaml-srpm-macros.signatures.json
@@ -0,0 +1,5 @@
+{
+ "Signatures": {
+ "macros.ocaml-srpm": "7e10cb8eadc47b9e33c1327f0d5fa2490122fefc04bc4f8432ec0a5fea058725"
+ }
+}
diff --git a/SPECS/ocaml-srpm-macros/ocaml-srpm-macros.spec b/SPECS/ocaml-srpm-macros/ocaml-srpm-macros.spec
new file mode 100644
index 00000000000..00089e6aa90
--- /dev/null
+++ b/SPECS/ocaml-srpm-macros/ocaml-srpm-macros.spec
@@ -0,0 +1,134 @@
+# OCaml has a bytecode backend that works on anything with a C
+# compiler, and a native code backend available on a subset of
+# architectures. A further subset of architectures support native
+# dynamic linking.
+#
+# This package contains a file needed to define some RPM macros
+# which are required before any SRPM is built.
+#
+# See also: https://bugzilla.redhat.com/show_bug.cgi?id=1087794
+Summary: OCaml architecture macros
+Name: ocaml-srpm-macros
+Version: 9
+Release: 4%{?dist}
+License: GPL-2.0-or-later
+# NB. This package MUST NOT Require anything (except for dependencies
+# that RPM itself generates).
+Vendor: Microsoft Corporation
+Distribution: Azure Linux
+Source0: macros.ocaml-srpm
+BuildArch: noarch
+
+%description
+This package contains macros needed by RPM in order to build
+SRPMS. It does not pull in any other OCaml dependencies.
+
+
+%prep
+
+
+%build
+
+
+%install
+mkdir -p %{buildroot}%{_rpmmacrodir}
+install -m 0644 %{SOURCE0} %{buildroot}%{_rpmmacrodir}/macros.ocaml-srpm
+
+
+%files
+%{_rpmmacrodir}/macros.ocaml-srpm
+
+%changelog
+* Tue May 14 2024 Mykhailo Bykhovtsev - 9-4
+- Initial Azure Linux import from Fedora 41 (license: MIT)
+- License verified
+
+* Thu Jan 25 2024 Fedora Release Engineering - 9-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Sun Jan 21 2024 Fedora Release Engineering - 9-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Wed Oct 4 2023 Jerry James - 9-1
+- Update OCaml native arches for OCaml 5.1
+- Remove the Python file and some macros (now in ocaml-rpm-macros)
+- Add %%ocaml_pkg macro for common declarations
+
+* Thu Jul 20 2023 Fedora Release Engineering - 8-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
+
+* Mon Jul 10 2023 Richard W.M. Jones - 8-1
+- Update OCaml native archs for OCaml 5.0
+
+* Thu Jan 19 2023 Fedora Release Engineering - 7-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+
+* Fri Jul 22 2022 Fedora Release Engineering - 7-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
+* Wed Feb 16 2022 Jerry James - 7-1
+- Add odoc and dune macros
+- Add ocaml_files.py to support %%files automation
+- Use %%rpmmacrodir instead of a custom macro
+
+* Thu Jan 20 2022 Fedora Release Engineering - 6-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
+* Thu Jul 22 2021 Fedora Release Engineering - 6-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Tue Jan 26 2021 Fedora Release Engineering - 6-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Tue Jul 28 2020 Fedora Release Engineering - 6-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Wed Jan 29 2020 Fedora Release Engineering - 6-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Fri Dec 06 2019 Richard W.M. Jones - 6-1
+- Remove support for native profiling, see:
+ https://github.com/ocaml/ocaml/pull/2314
+
+* Thu Jul 25 2019 Fedora Release Engineering - 5-6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Fri Feb 01 2019 Fedora Release Engineering - 5-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Fri Jul 13 2018 Fedora Release Engineering - 5-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Thu Feb 08 2018 Fedora Release Engineering - 5-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Tue Aug 08 2017 Richard W.M. Jones - 5-2
+- Bump and rebuild.
+
+* Tue Aug 8 2017 Richard W.M. Jones - 5-1
+- Add new macro ocaml_native_profiling.
+
+* Thu Jul 27 2017 Fedora Release Engineering - 4-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Sat Feb 11 2017 Fedora Release Engineering - 4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Tue Nov 8 2016 Richard W.M. Jones - 4-1
+- s390x is now a native architecture with OCaml 4.04 in Fedora >= 26.
+- Add riscv64 as a native arch using out of tree backend.
+
+* Thu Feb 04 2016 Fedora Release Engineering - 2-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Wed Jun 17 2015 Fedora Release Engineering - 2-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Sat Jun 07 2014 Fedora Release Engineering - 2-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Fri May 2 2014 Richard W.M. Jones - 2-1
+- Move macros to _rpmconfigdir (RHBZ#1093528).
+
+* Tue Apr 22 2014 Richard W.M. Jones - 1-1
+- New package.
diff --git a/SPECS/ocaml-stdlib-random/ocaml-stdlib-random.signatures.json b/SPECS/ocaml-stdlib-random/ocaml-stdlib-random.signatures.json
new file mode 100644
index 00000000000..ac01da4983e
--- /dev/null
+++ b/SPECS/ocaml-stdlib-random/ocaml-stdlib-random.signatures.json
@@ -0,0 +1,5 @@
+{
+ "Signatures": {
+ "stdlib-random-1.2.0.tar.gz": "b479958eb83bab2d3e1c4ea1054e2d963b6adf2a1e671706e9130e617a5dcb03"
+ }
+}
diff --git a/SPECS/ocaml-stdlib-random/ocaml-stdlib-random.spec b/SPECS/ocaml-stdlib-random/ocaml-stdlib-random.spec
new file mode 100644
index 00000000000..27e023a3ddc
--- /dev/null
+++ b/SPECS/ocaml-stdlib-random/ocaml-stdlib-random.spec
@@ -0,0 +1,77 @@
+Name: ocaml-stdlib-random
+Version: 1.2.0
+Release: 2%{?dist}
+Summary: Versioned Random module from the OCaml standard library
+License: LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception
+Vendor: Microsoft Corporation
+Distribution: Azure Linux
+URL: https://github.com/ocaml/stdlib-random
+Source0: %{url}/archive/%{version}/stdlib-random-%{version}.tar.gz
+
+# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
+ExcludeArch: %{ix86}
+
+BuildRequires: ocaml >= 5.1.1
+BuildRequires: ocaml-cppo >= 1.1.0
+BuildRequires: ocaml-dune >= 2.7
+
+%description
+The stdlib-random package provides a stable and compiler-independent
+implementation of all the PRNGs used in the Random module. Those PRNGs
+are available in the various libraries:
+- stdlib-random.v3: OCaml 3.07 to 3.11 PRNG
+- stdlib-random.v4: OCaml 3.12 to 4.14 PRNG
+- stdlib-random.v5: current OCaml 5.0 PRNG
+- stdlib-random.v5o: pure OCaml version of the OCaml 5 PRNG
+All those libraries can be used together and the signature of their
+Random$n module has been extended to the latest signature whenever
+possible.
+
+%package devel
+Summary: Development files for %{name}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description devel
+The %{name}-devel package contains libraries and signature
+files for developing applications that use %{name}.
+
+%prep
+%autosetup -n stdlib-random-%{version}
+
+%build
+%dune_build
+
+%install
+%dune_install
+
+%check
+%dune_check
+
+%files -f .ofiles
+%doc Changelog.md README.md
+%license LICENSE
+
+%files devel -f .ofiles-devel
+
+%changelog
+* Fri May 03 2024 Mykhailo Bykhovtsev - 1.2.0-2
+- Initial Azure Linux import from Fedora 41 (license: MIT)
+- License verified
+
+* Sat Mar 30 2024 Jerry James - 1.2.0-1
+- Version 1.2.0
+
+* Thu Jan 25 2024 Fedora Release Engineering - 1.1.0-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Sun Jan 21 2024 Fedora Release Engineering - 1.1.0-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Mon Dec 18 2023 Richard W.M. Jones - 1.1.0-3
+- OCaml 5.1.1 + s390x code gen fix for Fedora 40
+
+* Tue Dec 12 2023 Richard W.M. Jones - 1.1.0-2
+- OCaml 5.1.1 rebuild for Fedora 40
+
+* Wed Nov 22 2023 Jerry James - 1.1.0-1
+- Initial RPM (rhbz#2242905)
diff --git a/SPECS/ocaml-topkg/ocaml-topkg.spec b/SPECS/ocaml-topkg/ocaml-topkg.spec
index 0dc422c009b..daea15cc163 100644
--- a/SPECS/ocaml-topkg/ocaml-topkg.spec
+++ b/SPECS/ocaml-topkg/ocaml-topkg.spec
@@ -1,58 +1,96 @@
%global srcname topkg
-# BOOTSTRAP NOTE: currently we do not build the optional topkg-care part.
-# It has dependencies which do not yet exist in Mariner, and which themselves
-# depend on the main part of this package.
+
+# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
+ExcludeArch: %{ix86}
+
%ifnarch %{ocaml_native_compiler}
%global debug_package %{nil}
%endif
+
+# The topkg-care part has dependencies that themselves depend on the main
+# package. We do not build the care part for now.
+%bcond_with care
Summary: The transitory OCaml software packager
Name: ocaml-%{srcname}
Version: 1.0.7
-Release: 1%{?dist}
+Release: 2%{?dist}
License: ISC
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://erratique.ch/software/topkg/
Source0: https://github.com/dbuenzli/topkg/archive/v%{version}/%{srcname}-%{version}.tar.gz
-BuildRequires: ocaml >= 4.03.0
+BuildRequires: ocaml >= 5.1.1
+BuildRequires: ocaml-compiler-libs
BuildRequires: ocaml-findlib >= 1.6.1
BuildRequires: ocaml-ocamlbuild
-BuildRequires: ocaml-ocamldoc
-BuildRequires: ocaml-result-devel
+BuildRequires: ocaml-rpm-macros
+
+
+%if %{with care}
+BuildRequires: ocaml-bos-devel >= 0.1.5
+BuildRequires: ocaml-cmdliner-devel >= 1.0.0
+BuildRequires: ocaml-fmt-devel
+BuildRequires: ocaml-logs-devel
+BuildRequires: ocaml-webbrowser-devel
+BuildRequires: ocaml-opam-format-devel >= 2.0.0
+%endif
-%description
+# This can be removed when F40 reaches EOL
+Obsoletes: ocaml-topkg-doc < 1.0.5-4
+
+%global _desc %{expand:
Topkg is a packager for distributing OCaml software. It provides an
API to describe the files a package installs in a given build
configuration and to specify information about the package's
-distribution, creation and publication procedures.
-
+distribution, creation and publication procedures.}
+
+%description %_desc
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
-Requires: ocaml-result-devel%{?_isa}
-
+
%description devel
The %{name}-devel package contains libraries and signature files for
developing applications that use %{name}.
-
-%package doc
-Summary: Documentation for %{name}
-BuildArch: noarch
-
-%description doc
-Documentation for %{name}.
-
+
+%if %{with care}
+%package care
+Summary: Command line tool for the transitory OCaml software packager
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: ocaml-ocamlbuild%{?_isa}
+
+%description care %_desc
+This package provides a command line tool which helps with various
+aspects of a package's life cycle: creating and linting a distribution,
+releasing it on the web, publishing its documentation, adding it to the
+OCaml opam repository, etc.
+
+%package care-devel
+Summary: Development files for %{name}-care
+Requires: %{name}-care%{?_isa} = %{version}-%{release}
+Requires: ocaml-bos-devel%{?_isa}
+Requires: ocaml-cmdliner-devel%{?_isa}
+Requires: ocaml-fmt-devel%{?_isa}
+Requires: ocaml-logs-devel%{?_isa}
+Requires: ocaml-opam-format-devel%{?_isa}
+Requires: ocaml-webbrowser-devel%{?_isa}
+
+%description care-devel
+The %{name}-care-devel package contains libraries and signature files
+for developing applications that use %{name}-care.
+%endif
+
%prep
-%autosetup -n %{srcname}-%{version}
-
+%autosetup -n topkg-%{version} -p1
+
# This package can replace "watermarks" in software that it builds. However,
# we are building from scratch, rather than using topkg to build itself, so we
# have to do the job manually.
for fil in $(find . -type f); do
- sed -e 's,%%%%NAME%%%%,%{srcname},' \
+ sed -e 's,%%%%NAME%%%%,topkg,' \
-e 's,%%%%PKG_DOC%%%%,%{url}doc/,' \
-e 's,%%%%PKG_HOMEPAGE%%%%,%{url},' \
-e 's,%%%%VERSION%%%%,v%{version},' \
@@ -61,74 +99,41 @@ for fil in $(find . -type f); do
touch -r $fil.orig $fil
rm $fil.orig
done
-
+
%build
# Build the library and the tests
ocaml pkg/pkg.ml build --pkg-name topkg --tests true
-
-# Build the command line tool
-%ifarch %{ocaml_native_compiler}
-ocamlbuild topkg.native
-%else
-ocamlbuild topkg.byte
+
+%if %{with care}
+# Build topkg-care
+ocaml pkg/pkg.ml build --pkg-name topkg-care --tests true
%endif
-
-# Build the documentation. It is meant to be built with odoc, but odoc
-# transitively depends on this package, so we do it manually for bootstrap
-# builds. Once a non-bootstrap build is possible, use odoc instead.
-mkdir html
-ocamldoc -html -d html -I _build/src _build/src/*.{mli,ml}
-
+
%install
-# Install the library
-mkdir -p %{buildroot}%{_libdir}/ocaml/topkg
-cp -p _build/topkg.opam %{buildroot}%{_libdir}/ocaml/topkg/opam
-cp -p _build/pkg/META %{buildroot}%{_libdir}/ocaml/topkg/META
-%ifarch %{ocaml_native_compiler}
-cp -a _build/src/*.{a,cma,cmi,cmt,cmti,cmx,cmxa,cmxs,mli} \
- %{buildroot}%{_libdir}/ocaml/topkg
-%else
-cp -a _build/src/*.{cma,cmi,cmt,cmti,mli} %{buildroot}%{_libdir}/ocaml/topkg
-%endif
-
-# Install the command line tool
-mkdir -p %{buildroot}%{_bindir}
-%ifarch %{ocaml_native_compiler}
-cp -p _build/src/topkg.native %{buildroot}%{_bindir}/topkg
-%else
-cp -p _build/src/topkg.byte %{buildroot}%{_bindir}/topkg
-%endif
-
+%ocaml_install -s
+
+%if %{with care}
%check
ocaml pkg/pkg.ml test
-
-%files
+%endif
+
+%files -f .ofiles-topkg
%doc CHANGES.md README.md
%license LICENSE.md
-%{_bindir}/%{srcname}
-%dir %{_libdir}/ocaml/%{srcname}/
-%{_libdir}/ocaml/%{srcname}/META
-%{_libdir}/ocaml/%{srcname}/%{srcname}.cma
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmi
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/%{srcname}.cmxs
-%endif
-
-%files devel
-%{_libdir}/ocaml/%{srcname}/opam
-%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{srcname}/%{srcname}.a
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmx
-%{_libdir}/ocaml/%{srcname}/%{srcname}.cmxa
+
+%files devel -f .ofiles-topkg-devel
+
+%if %{with care}
+%files care -f .ofiles-care
+
+%files care-devel -f .ofiles-care-devel
%endif
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmt
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.cmti
-%{_libdir}/ocaml/%{srcname}/%{srcname}*.mli
-
-%files doc
-%doc html/*
%changelog
+* Mon May 06 2024 Mykhailo Bykhovtsev - 1.0.7-2
+- Converted spec file to match with Fedora 41.
+- Use ocaml 5.1.1 to build and update build process
+
* Thu Nov 02 2023 CBL-Mariner Servicing Account - 1.0.7-1
- Auto-upgrade to 1.0.7 - Azure Linux 3.0 - package upgrades
diff --git a/SPECS/ocaml/0001-Don-t-add-rpaths-to-libraries.patch b/SPECS/ocaml/0001-Don-t-add-rpaths-to-libraries.patch
index f079b47cc6b..d497a12ee6a 100644
--- a/SPECS/ocaml/0001-Don-t-add-rpaths-to-libraries.patch
+++ b/SPECS/ocaml/0001-Don-t-add-rpaths-to-libraries.patch
@@ -1,26 +1,23 @@
-From 23f2e84d360208759c7d82b7ff795770ce6cf0b2 Mon Sep 17 00:00:00 2001
+From 799bf9088c131fc71626a48e9987e4d44a2f0194 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Tue, 24 Jun 2014 10:00:15 +0100
-Subject: [PATCH 1/3] Don't add rpaths to libraries.
-
+Subject: [PATCH 1/4] Don't add rpaths to libraries.
+
---
- utils/config.mlp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/utils/config.mlp b/utils/config.mlp
-index bbb3c5694..57d509cd0 100644
---- a/utils/config.mlp
-+++ b/utils/config.mlp
-@@ -55,8 +55,8 @@ let native_c_compiler =
- let native_c_libraries = "%%NATIVECCLIBS%%"
- let native_pack_linker = "%%PACKLD%%"
- let ranlib = "%%RANLIBCMD%%"
--let default_rpath = "%%RPATH%%"
--let mksharedlibrpath = "%%MKSHAREDLIBRPATH%%"
-+let default_rpath = ""
-+let mksharedlibrpath = ""
- let ar = "%%ARCMD%%"
- let supports_shared_libraries = %%SUPPORTS_SHARED_LIBRARIES%%
- let mkdll, mkexe, mkmaindll =
+ configure.ac | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b81da53c42..892a2a894f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1107,8 +1107,6 @@ AS_IF([test x"$enable_shared" != "xno"],
+ [[*-*-openbsd7.[3-9]|*-*-openbsd[89].*]],
+ [mkdll_flags="${mkdll_flags} -Wl,--no-execute-only"])
+ oc_ldflags="$oc_ldflags -Wl,-E"
+- rpath="-Wl,-rpath,"
+- mksharedlibrpath="-Wl,-rpath,"
+ natdynlinkopts="-Wl,-E"
+ supports_shared_libraries=true],
+ [mkdll='shared-libs-not-available'])
--
-2.32.0
diff --git a/SPECS/ocaml/0002-configure-Allow-user-defined-C-compiler-flags.patch b/SPECS/ocaml/0002-configure-Allow-user-defined-C-compiler-flags.patch
index 675d3b2db81..80c0e87e53f 100644
--- a/SPECS/ocaml/0002-configure-Allow-user-defined-C-compiler-flags.patch
+++ b/SPECS/ocaml/0002-configure-Allow-user-defined-C-compiler-flags.patch
@@ -1,17 +1,17 @@
-From 9966786a7389dc6621f2bc2dce7c690c5a38b67d Mon Sep 17 00:00:00 2001
+From f2b875e8201efed22267136096b1e5df97f99f84 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Tue, 29 May 2012 20:44:18 +0100
-Subject: [PATCH 2/3] configure: Allow user defined C compiler flags.
-
+Subject: [PATCH 2/4] configure: Allow user defined C compiler flags.
+
---
- configure.ac | 4 ++++
- 1 file changed, 4 insertions(+)
-
+ configure.ac | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
diff --git a/configure.ac b/configure.ac
-index 3698c7cbf..e2a3cbea0 100644
+index 892a2a894f..e8f6cbc863 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -669,6 +669,10 @@ AS_CASE([$host],
+@@ -760,6 +760,10 @@ AS_CASE([$host],
internal_cflags="$cc_warnings"],
[common_cflags="-O"])])
@@ -19,8 +19,25 @@ index 3698c7cbf..e2a3cbea0 100644
+common_cflags="$common_cflags $CFLAGS"
+cclibs="$cclibs $LDFLAGS"
+
- internal_cppflags="-DCAML_NAME_SPACE $internal_cppflags"
-
# Enable SSE2 on x86 mingw to avoid using 80-bit registers.
+ AS_CASE([$host],
+ [i686-*-mingw32*],
+@@ -2327,7 +2331,7 @@ AC_CONFIG_COMMANDS_PRE([
+ [mkexedebugflag="${mkexe_ldflags_prefix}${mkexedebugflag}"])
+ mkdll_ldflags=""
+ AS_IF([test -n "${LDFLAGS}"],
+- [for flag in ${LDFLAGS}; do
++ [for flag in "${LDFLAGS}"; do
+ mkdll_ldflags="${mkdll_ldflags} ${mkexe_ldflags_prefix}${flag}"
+ done
+ mkdll_ldflags_exp="$mkdll_ldflags"])
+@@ -2353,7 +2357,7 @@ ${mkdll_ldflags}"
+ ],[
+ mkdll_ldflags='$(OC_DLL_LDFLAGS) $(LDFLAGS)'
+ mkdll_ldflags_exp="${oc_dll_ldflags}"
+- AS_IF([test -n ${LDFLAGS}],
++ AS_IF([test -n "${LDFLAGS}"],
+ [mkdll_ldflags_exp="$mkdll_ldflags_exp $LDFLAGS"])
+ mkexe_ldflags="\$(OC_LDFLAGS) \$(LDFLAGS)"
+ mkexe_ldflags_exp="${oc_ldflags} ${LDFLAGS}"
--
-2.32.0
diff --git a/SPECS/ocaml/0003-Update-framepointers-tests-to-avoid-false-positive-w.patch b/SPECS/ocaml/0003-Update-framepointers-tests-to-avoid-false-positive-w.patch
new file mode 100644
index 00000000000..10c2325ece6
--- /dev/null
+++ b/SPECS/ocaml/0003-Update-framepointers-tests-to-avoid-false-positive-w.patch
@@ -0,0 +1,694 @@
+From ba44a9c29771aacf44222a2ff63e7bd6034dd92c Mon Sep 17 00:00:00 2001
+From: Fabrice Buoro
+Date: Fri, 10 Mar 2023 09:36:22 -0700
+Subject: [PATCH 3/4] Update framepointers tests to avoid false positive with
+ inlined C functions
+
+---
+ testsuite/tests/frame-pointers/c_call.ml | 14 +-
+ .../tests/frame-pointers/c_call.reference | 9 -
+ testsuite/tests/frame-pointers/c_call.run | 4 -
+ testsuite/tests/frame-pointers/c_call_.c | 14 +-
+ testsuite/tests/frame-pointers/effects.ml | 12 +-
+ .../tests/frame-pointers/effects.reference | 15 --
+ testsuite/tests/frame-pointers/effects.run | 4 -
+ .../tests/frame-pointers/exception_handler.ml | 4 +-
+ .../exception_handler.reference | 12 --
+ .../frame-pointers/exception_handler.run | 4 -
+ .../tests/frame-pointers/filter-locations.sh | 23 ---
+ testsuite/tests/frame-pointers/fp_backtrace.c | 186 +++++++++++-------
+ testsuite/tests/frame-pointers/reperform.ml | 4 +-
+ .../tests/frame-pointers/reperform.reference | 3 -
+ testsuite/tests/frame-pointers/reperform.run | 4 -
+ .../tests/frame-pointers/stack_realloc.ml | 4 +-
+ .../frame-pointers/stack_realloc.reference | 3 -
+ .../tests/frame-pointers/stack_realloc.run | 4 -
+ .../tests/frame-pointers/stack_realloc2.ml | 4 +-
+ .../frame-pointers/stack_realloc2.reference | 3 -
+ .../tests/frame-pointers/stack_realloc2.run | 4 -
+ 21 files changed, 144 insertions(+), 190 deletions(-)
+ delete mode 100644 testsuite/tests/frame-pointers/c_call.run
+ delete mode 100644 testsuite/tests/frame-pointers/effects.run
+ delete mode 100644 testsuite/tests/frame-pointers/exception_handler.run
+ delete mode 100755 testsuite/tests/frame-pointers/filter-locations.sh
+ delete mode 100644 testsuite/tests/frame-pointers/reperform.run
+ delete mode 100644 testsuite/tests/frame-pointers/stack_realloc.run
+ delete mode 100644 testsuite/tests/frame-pointers/stack_realloc2.run
+
+diff --git a/testsuite/tests/frame-pointers/c_call.ml b/testsuite/tests/frame-pointers/c_call.ml
+index c2493b3a99..9b98e86520 100644
+--- a/testsuite/tests/frame-pointers/c_call.ml
++++ b/testsuite/tests/frame-pointers/c_call.ml
+@@ -7,20 +7,20 @@ all_modules = "${readonly_files} c_call.ml"
+
+ *)
+
+-external fp_backtrace : unit -> unit = "fp_backtrace"
+-external fp_backtrace_no_alloc : unit -> unit = "fp_backtrace" [@@noalloc]
+-external fp_backtrace_many_args : int -> int -> int -> int -> int -> int -> int
+- -> int -> int -> int -> int -> unit =
++external fp_backtrace : string -> unit = "fp_backtrace"
++external fp_backtrace_no_alloc : string -> unit = "fp_backtrace" [@@noalloc]
++external fp_backtrace_many_args : string -> int -> int -> int -> int -> int
++ -> int -> int -> int -> int -> int -> int -> unit =
+ "fp_backtrace_many_args_argv" "fp_backtrace_many_args"
+
+ let[@inline never] f () =
+ (* Check backtrace through caml_c_call_stack_args *)
+- fp_backtrace_many_args 1 2 3 4 5 6 7 8 9 10 11;
++ fp_backtrace_many_args Sys.argv.(0) 1 2 3 4 5 6 7 8 9 10 11;
+ (* Check backtrace through caml_c_call.
+ * Also check that caml_c_call_stack_args correctly restores rbp register *)
+- fp_backtrace ();
++ fp_backtrace Sys.argv.(0);
+ (* Check caml_c_call correctly restores rbp register *)
+- fp_backtrace_no_alloc ();
++ fp_backtrace_no_alloc Sys.argv.(0);
+ 42
+
+ let () = ignore (f ())
+diff --git a/testsuite/tests/frame-pointers/c_call.reference b/testsuite/tests/frame-pointers/c_call.reference
+index 92fb40a238..23095e7431 100644
+--- a/testsuite/tests/frame-pointers/c_call.reference
++++ b/testsuite/tests/frame-pointers/c_call.reference
+@@ -3,19 +3,10 @@ caml_c_call_stack_args
+ camlC_call.f
+ camlC_call.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+ caml_c_call
+ camlC_call.f
+ camlC_call.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+ camlC_call.f
+ camlC_call.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+diff --git a/testsuite/tests/frame-pointers/c_call.run b/testsuite/tests/frame-pointers/c_call.run
+deleted file mode 100644
+index e96b5ea13a..0000000000
+--- a/testsuite/tests/frame-pointers/c_call.run
++++ /dev/null
+@@ -1,4 +0,0 @@
+-#!/bin/sh
+-
+-${program} 2>&1 \
+- | ${test_source_directory}/filter-locations.sh ${program} >${output}
+diff --git a/testsuite/tests/frame-pointers/c_call_.c b/testsuite/tests/frame-pointers/c_call_.c
+index 634c4dd937..a75100b213 100644
+--- a/testsuite/tests/frame-pointers/c_call_.c
++++ b/testsuite/tests/frame-pointers/c_call_.c
+@@ -16,10 +16,10 @@
+ #include
+ #include "caml/mlvalues.h"
+
+-void fp_backtrace(void);
++void fp_backtrace(value);
+
+-value fp_backtrace_many_args(value a, value b, value c, value d, value e,
+- value f, value g, value h, value i, value j, value k)
++value fp_backtrace_many_args(value argv0, value a, value b, value c,
++ value d, value e, value f, value g, value h, value i, value j, value k)
+ {
+ assert(Int_val(a) == 1);
+ assert(Int_val(b) == 2);
+@@ -33,15 +33,15 @@ value fp_backtrace_many_args(value a, value b, value c, value d, value e,
+ assert(Int_val(j) == 10);
+ assert(Int_val(k) == 11);
+
+- fp_backtrace();
++ fp_backtrace(argv0);
+
+ return Val_unit;
+ }
+
+-value fp_bactrace_many_args_argv(value *argv, int argc)
++value fp_bactrace_many_args_argv(value argv0, value *argv, int argc)
+ {
+ assert(argc == 11);
+
+- return fp_backtrace_many_args(argv[0], argv[1], argv[2], argv[3], argv[4],
+- argv[5], argv[6], argv[7], argv[8], argv[9], argv[10]);
++ return fp_backtrace_many_args(argv0, argv[0], argv[1], argv[2], argv[3],
++ argv[4], argv[5], argv[6], argv[7], argv[8], argv[9], argv[10]);
+ }
+diff --git a/testsuite/tests/frame-pointers/effects.ml b/testsuite/tests/frame-pointers/effects.ml
+index e14633a374..4d14190320 100644
+--- a/testsuite/tests/frame-pointers/effects.ml
++++ b/testsuite/tests/frame-pointers/effects.ml
+@@ -11,26 +11,26 @@ open Printf
+ open Effect
+ open Effect.Deep
+
+-external fp_backtrace : unit -> unit = "fp_backtrace" [@@noalloc]
++external fp_backtrace : string -> unit = "fp_backtrace" [@@noalloc]
+
+ type _ t += E : int -> int t
+
+ let[@inline never] f () =
+ printf "# computation f\n%!";
+- fp_backtrace ();
++ fp_backtrace Sys.argv.(0);
+ printf "# perform effect (E 0)\n%!";
+ let v = perform (E 0) in
+ printf "# perform returns %d\n%!" v;
+- fp_backtrace ();
++ fp_backtrace Sys.argv.(0);
+ v + 1
+
+ let h (type a) (eff : a t) : ((a, 'b) continuation -> 'b) option =
+ let[@inline never] h_effect_e v k =
+ printf "# caught effect (E %d). continuing...\n%!" v;
+- fp_backtrace ();
++ fp_backtrace Sys.argv.(0);
+ let v = continue k (v + 1) in
+ printf "# continue returns %d\n%!" v;
+- fp_backtrace ();
++ fp_backtrace Sys.argv.(0);
+ v + 1
+ in
+ match eff with
+@@ -41,7 +41,7 @@ let h (type a) (eff : a t) : ((a, 'b) continuation -> 'b) option =
+ let v =
+ let[@inline never] v_retc v =
+ printf "# done %d\n%!" v;
+- fp_backtrace ();
++ fp_backtrace Sys.argv.(0);
+ v + 1
+ in
+ match_with f ()
+diff --git a/testsuite/tests/frame-pointers/effects.reference b/testsuite/tests/frame-pointers/effects.reference
+index c8bd0a391a..8ae3fc26df 100644
+--- a/testsuite/tests/frame-pointers/effects.reference
++++ b/testsuite/tests/frame-pointers/effects.reference
+@@ -3,39 +3,24 @@ camlEffects.f
+ caml_runstack
+ camlEffects.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+ # perform effect (E 0)
+ # caught effect (E 0). continuing...
+ camlEffects.h_effect_e
+ camlEffects.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+ # perform returns 1
+ camlEffects.f
+ caml_runstack
+ camlEffects.h_effect_e
+ camlEffects.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+ # done 2
+ camlEffects.v_retc
+ camlEffects.h_effect_e
+ camlEffects.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+ # continue returns 3
+ camlEffects.h_effect_e
+ camlEffects.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+ # result=4
+diff --git a/testsuite/tests/frame-pointers/effects.run b/testsuite/tests/frame-pointers/effects.run
+deleted file mode 100644
+index e96b5ea13a..0000000000
+--- a/testsuite/tests/frame-pointers/effects.run
++++ /dev/null
+@@ -1,4 +0,0 @@
+-#!/bin/sh
+-
+-${program} 2>&1 \
+- | ${test_source_directory}/filter-locations.sh ${program} >${output}
+diff --git a/testsuite/tests/frame-pointers/exception_handler.ml b/testsuite/tests/frame-pointers/exception_handler.ml
+index 575f7329bf..95a4f0d75c 100644
+--- a/testsuite/tests/frame-pointers/exception_handler.ml
++++ b/testsuite/tests/frame-pointers/exception_handler.ml
+@@ -8,7 +8,7 @@ all_modules = "${readonly_files} exception_handler.ml"
+ *)
+
+ (* https://github.com/ocaml/ocaml/pull/11031 *)
+-external fp_backtrace : unit -> unit = "fp_backtrace" [@@noalloc]
++external fp_backtrace : string -> unit = "fp_backtrace" [@@noalloc]
+
+ exception Exn1
+ exception Exn2
+@@ -38,7 +38,7 @@ let[@inline never] handler () =
+ let _ = Sys.opaque_identity x0 in
+ let _ = Sys.opaque_identity x1 in
+ let _ = Sys.opaque_identity x2 in
+- fp_backtrace ()
++ fp_backtrace Sys.argv.(0)
+
+ let[@inline never] nested i =
+ begin
+diff --git a/testsuite/tests/frame-pointers/exception_handler.reference b/testsuite/tests/frame-pointers/exception_handler.reference
+index 513ca488b9..e012fb6d4f 100644
+--- a/testsuite/tests/frame-pointers/exception_handler.reference
++++ b/testsuite/tests/frame-pointers/exception_handler.reference
+@@ -2,27 +2,15 @@ camlException_handler.handler
+ camlException_handler.bare
+ camlException_handler.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+ camlException_handler.handler
+ camlException_handler.bare
+ camlException_handler.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+ camlException_handler.handler
+ camlException_handler.nested
+ camlException_handler.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+ camlException_handler.handler
+ camlException_handler.nested
+ camlException_handler.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+diff --git a/testsuite/tests/frame-pointers/exception_handler.run b/testsuite/tests/frame-pointers/exception_handler.run
+deleted file mode 100644
+index e96b5ea13a..0000000000
+--- a/testsuite/tests/frame-pointers/exception_handler.run
++++ /dev/null
+@@ -1,4 +0,0 @@
+-#!/bin/sh
+-
+-${program} 2>&1 \
+- | ${test_source_directory}/filter-locations.sh ${program} >${output}
+diff --git a/testsuite/tests/frame-pointers/filter-locations.sh b/testsuite/tests/frame-pointers/filter-locations.sh
+deleted file mode 100755
+index 31c7fc3189..0000000000
+--- a/testsuite/tests/frame-pointers/filter-locations.sh
++++ /dev/null
+@@ -1,23 +0,0 @@
+-#!/bin/sh
+-
+-set -eu
+-
+-program="${1}"
+-# https://stackoverflow.com/questions/29613304/is-it-possible-to-escape-regex-metacharacters-reliably-with-sed/29626460#29626460
+-program_escaped=$(echo ${program} | sed 's/[^^\\]/[&]/g; s/\^/\\^/g; s/\\/\\\\/g')
+-regex_backtrace='^.*(\(.*\)+0x[[:xdigit:]]*)[0x[[:xdigit:]]*]$'
+-regex_trim_fun='^\(caml.*\)_[[:digit:]]*$'
+-
+-# - Ignore backtrace not coming from the program binary
+-# - Discard the number suffix from OCaml function name
+-# - Remove strange '[0x.....]' entries inserted by some implementation
+-# of backtrace_symbols_fd
+-# - Keep the other lines
+-sed -e \
+- "/${regex_backtrace}/ {
+- /^${program_escaped}/ ! d
+- s/${regex_backtrace}/\1/
+- s/${regex_trim_fun}/\1/
+- s;caml_\(main\|startup\);caml_main/caml_startup;
+- }" \
+- -e '/^\[0x/d'
+diff --git a/testsuite/tests/frame-pointers/fp_backtrace.c b/testsuite/tests/frame-pointers/fp_backtrace.c
+index a521218a38..cef7ccd9f2 100644
+--- a/testsuite/tests/frame-pointers/fp_backtrace.c
++++ b/testsuite/tests/frame-pointers/fp_backtrace.c
+@@ -1,10 +1,17 @@
+ #include
+-#include
+-#include
+-#include
++#include
++#include
+ #include
++#include
++#include
+
+-#define ARRSIZE(a) (sizeof(a) / sizeof(*(a)))
++#include "caml/mlvalues.h"
++
++#define ARR_SIZE(a) (sizeof(a) / sizeof(*(a)))
++
++#define RE_FUNC_NAME "^.*\\((.+)\\+0x[[:xdigit:]]+\\) \\[0x[[:xdigit:]]+\\]$"
++#define RE_TRIM_FUNC "(caml.*)_[[:digit:]]+"
++#define CAML_ENTRY "caml_program"
+
+ typedef struct frame_info
+ {
+@@ -12,99 +19,138 @@ typedef struct frame_info
+ void* retaddr; /* rip */
+ } frame_info;
+
+-jmp_buf resume_buf;
+
++/*
++ * A backtrace symbol looks like:
++ * ./path/to/binary(camlModule_fn_123+0xAABBCC) [0xAABBCCDDEE]
++ */
++static const char* backtrace_symbol(const struct frame_info* fi)
++{
++ char** symbols = backtrace_symbols(&fi->retaddr, 1);
++ if (!symbols) {
++ perror("backtrace_symbols");
++ return NULL;
++ }
+
+-static void signal_handler(int signum)
++ const char* symbol = strdup(symbols[0]);
++ free(symbols);
++ return symbol;
++}
++
++static bool is_from_executable(const char* symbol, const char* execname)
+ {
+- /* Should be safe to be called from a signal handler.
+- * See 21.2.1 "Performing a nonlocal goto from a signal handler" from
+- * The Linux Programming Interface, Michael Kerrisk */
+- siglongjmp(resume_buf, 1);
++ return strncmp(symbol, execname, strlen(execname)) == 0;
+ }
+
+-static int install_signal_handlers(const int signals[], struct sigaction
+- handlers[], int count)
++static regmatch_t func_name_from_symbol(const char* symbol)
+ {
+- for (int i = 0; i < count; i++) {
+- struct sigaction action = { 0 };
+- action.sa_handler = signal_handler;
+- sigemptyset(&action.sa_mask);
+- action.sa_flags = 0;
+-
+- if (sigaction(signals[i], &action, &handlers[i]) != 0) {
+- perror("sigaction");
+- return -1;
+- }
++ regex_t regex;
++ regmatch_t match[2] = { {-1, -1}, {-1, -1}};
++ char errbuf[128];
++ int err;
++
++ err = regcomp(®ex, RE_FUNC_NAME, REG_EXTENDED);
++ if (err) {
++ regerror(err, ®ex, errbuf, ARR_SIZE(errbuf));
++ fprintf(stderr, "regcomp: %s\n", errbuf);
++ return match[0];
+ }
+- return 0;
++
++ err = regexec(®ex, symbol, ARR_SIZE(match), match, 0);
++ if (err == REG_NOMATCH)
++ return match[0];
++
++ return match[1];
+ }
+
+-static int restore_signal_handlers(const int signals[], struct sigaction
+- handlers[], int count)
++static bool is_caml_entry(const char* symbol, const regmatch_t* funcname)
+ {
+- for (int i = 0; i < count; i++) {
+- if (sigaction(signals[i], &handlers[i], NULL) != 0) {
+- perror("sigaction");
+- return -1;
+- }
+- }
+- return 0;
++ //regoff_t len = funcname->rm_eo - funcname->rm_so;
++ //return strnstr(symbol + funcname->rm_so, CAML_ENTRY, len) == 0;
++ return strstr(symbol + funcname->rm_so, CAML_ENTRY) != NULL;
+ }
+
+-static int safe_read(const struct frame_info* fi, struct frame_info** prev,
+- void** retaddr)
++static regmatch_t trim_func_name(const char* symbol, const regmatch_t* funcname)
+ {
+- /* Signals to ignore while attempting to read frame_info members */
+- const int signals[] = { SIGSEGV, SIGBUS };
+- /* Store original signal handers */
+- struct sigaction handlers[ARRSIZE(signals)] = { 0 };
+- int ret = 0;
+-
+- if (install_signal_handlers(signals, handlers, ARRSIZE(signals)) != 0)
+- return -1;
+-
+- if (!sigsetjmp(resume_buf, 1)) {
+- *prev = fi->prev;
+- *retaddr = fi->retaddr;
+- } else {
+- ret = -1;
++ regex_t regex;
++ regmatch_t match[2] = { {-1, -1}, {-1, -1}};
++ char errbuf[128];
++ int err;
++
++ err = regcomp(®ex, RE_TRIM_FUNC, REG_EXTENDED);
++ if (err) {
++ regerror(err, ®ex, errbuf, ARR_SIZE(errbuf));
++ fprintf(stderr, "regcomp: %s\n", errbuf);
++ return match[0];
+ }
+
+- if (restore_signal_handlers(signals, handlers, ARRSIZE(signals)) != 0)
+- return -1;
++ match[0] = *funcname;
++ err = regexec(®ex, symbol, ARR_SIZE(match), match, REG_STARTEND);
++ if (err == REG_NOMATCH) {
++ /* match[0] has already been overwritten to hold the function full name for
++ regexec */
++ return match[1];
++ }
+
+- return ret;
++ return match[1];
+ }
+
+-static void print_location(void* addr)
++static void print_symbol(const char* symbol, const regmatch_t* match)
+ {
+- if (!addr)
+- return;
++ regoff_t off = match->rm_so;
++ regoff_t len = match->rm_eo - match->rm_so;
+
+- /* This requires the binary to be linked with '-rdynamic' */
+- backtrace_symbols_fd(&addr, 1, STDOUT_FILENO);
++ fprintf(stdout, "%.*s\n", len, symbol + off);
++ fflush(stdout);
+ }
+
+-void fp_backtrace(void)
++void fp_backtrace(value argv0)
+ {
+- struct frame_info *fi;
+- struct frame_info* next;
+- void* retaddr;
+-
+- fi = __builtin_frame_address(0);
+- retaddr = __builtin_extract_return_addr(__builtin_return_address(0));
+-
+- for (; fi; fi = next) {
+- if (safe_read(fi, &next, &retaddr) != 0)
+- return;
++ const char* execname = String_val(argv0);
++ struct frame_info* next = NULL;
++ const char* symbol = NULL;
+
+- print_location(retaddr);
++ for (struct frame_info* fi = __builtin_frame_address(0); fi; fi = next) {
++ next = fi->prev;
+
+ /* Detect the simplest kind of infinite loop */
+ if (fi == next) {
+- printf("fp_backtrace: loop detected\n");
+- return;
++ fprintf(stderr, "fp_backtrace: loop detected\n");
++ break;
+ }
++
++ symbol = backtrace_symbol(fi);
++ if (!symbol)
++ continue;
++
++ /* Skip entries not from the test */
++ if (!is_from_executable(symbol, execname))
++ goto skip;
++
++ /* Exctract the full function name */
++ regmatch_t funcname = func_name_from_symbol(symbol);
++ if (funcname.rm_so == -1)
++ goto skip;
++
++ /* Trim numeric suffix from caml functions */
++ regmatch_t functrimmed = trim_func_name(symbol, &funcname);
++
++ /* Use the trimmed caml name if available, otherwise use the full function
++ name */
++ const regmatch_t* match = (functrimmed.rm_so != -1) ?
++ &functrimmed : &funcname;
++
++ print_symbol(symbol, match);
++
++ /* Stop the backtrace at caml_program */
++ if (is_caml_entry(symbol, &funcname))
++ break;
++
++skip:
++ free((void*)symbol);
++ symbol = NULL;
+ }
++
++ if (symbol)
++ free((void*)symbol);
+ }
+diff --git a/testsuite/tests/frame-pointers/reperform.ml b/testsuite/tests/frame-pointers/reperform.ml
+index 1af8452e5f..da251c98a7 100644
+--- a/testsuite/tests/frame-pointers/reperform.ml
++++ b/testsuite/tests/frame-pointers/reperform.ml
+@@ -11,7 +11,7 @@ all_modules = "${readonly_files} reperform.ml"
+ open Effect
+ open Effect.Deep
+
+-external fp_backtrace : unit -> unit = "fp_backtrace" [@@noalloc]
++external fp_backtrace : string -> unit = "fp_backtrace" [@@noalloc]
+
+ type _ Effect.t += E : unit t
+ | F : unit t
+@@ -22,7 +22,7 @@ let rec foo n =
+ if n = 5 then begin
+ perform E;
+ print_endline "# resumed...";
+- fp_backtrace ()
++ fp_backtrace Sys.argv.(0)
+ end;
+ foo (n + 1) + n
+ end
+diff --git a/testsuite/tests/frame-pointers/reperform.reference b/testsuite/tests/frame-pointers/reperform.reference
+index 9ac6681d4b..e215f77169 100644
+--- a/testsuite/tests/frame-pointers/reperform.reference
++++ b/testsuite/tests/frame-pointers/reperform.reference
+@@ -15,6 +15,3 @@ camlReperform.bar
+ caml_runstack
+ camlReperform.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+diff --git a/testsuite/tests/frame-pointers/reperform.run b/testsuite/tests/frame-pointers/reperform.run
+deleted file mode 100644
+index e96b5ea13a..0000000000
+--- a/testsuite/tests/frame-pointers/reperform.run
++++ /dev/null
+@@ -1,4 +0,0 @@
+-#!/bin/sh
+-
+-${program} 2>&1 \
+- | ${test_source_directory}/filter-locations.sh ${program} >${output}
+diff --git a/testsuite/tests/frame-pointers/stack_realloc.ml b/testsuite/tests/frame-pointers/stack_realloc.ml
+index 79e70c2add..f24e4795d5 100644
+--- a/testsuite/tests/frame-pointers/stack_realloc.ml
++++ b/testsuite/tests/frame-pointers/stack_realloc.ml
+@@ -13,7 +13,7 @@ open Effect.Deep
+
+ type _ t += E : int -> int t
+
+-external fp_backtrace : unit -> unit = "fp_backtrace" [@@noalloc]
++external fp_backtrace : string -> unit = "fp_backtrace" [@@noalloc]
+ external c_fun : unit -> int = "c_fun"
+
+ let[@inline never][@local never] f x = x
+@@ -42,7 +42,7 @@ let[@inline never] consume_stack () =
+
+ let[@inline never] callback () =
+ consume_stack ();
+- fp_backtrace ();
++ fp_backtrace Sys.argv.(0);
+ 0
+
+ let _ = Callback.register "callback" callback
+diff --git a/testsuite/tests/frame-pointers/stack_realloc.reference b/testsuite/tests/frame-pointers/stack_realloc.reference
+index 016a03550a..e61d4104e0 100644
+--- a/testsuite/tests/frame-pointers/stack_realloc.reference
++++ b/testsuite/tests/frame-pointers/stack_realloc.reference
+@@ -7,6 +7,3 @@ camlStack_realloc.f_comp
+ caml_runstack
+ camlStack_realloc.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+diff --git a/testsuite/tests/frame-pointers/stack_realloc.run b/testsuite/tests/frame-pointers/stack_realloc.run
+deleted file mode 100644
+index e96b5ea13a..0000000000
+--- a/testsuite/tests/frame-pointers/stack_realloc.run
++++ /dev/null
+@@ -1,4 +0,0 @@
+-#!/bin/sh
+-
+-${program} 2>&1 \
+- | ${test_source_directory}/filter-locations.sh ${program} >${output}
+diff --git a/testsuite/tests/frame-pointers/stack_realloc2.ml b/testsuite/tests/frame-pointers/stack_realloc2.ml
+index a3d21bf2bf..218dd6a1c3 100644
+--- a/testsuite/tests/frame-pointers/stack_realloc2.ml
++++ b/testsuite/tests/frame-pointers/stack_realloc2.ml
+@@ -13,7 +13,7 @@ open Effect.Deep
+
+ type _ t += E : int -> int t
+
+-external fp_backtrace : unit -> unit = "fp_backtrace" [@@noalloc]
++external fp_backtrace : string -> unit = "fp_backtrace" [@@noalloc]
+ external c_fun : unit -> int = "c_fun"
+
+ let[@inline never][@local never] f x = x
+@@ -41,7 +41,7 @@ let[@inline never] consume_stack () =
+ ignore (gobbler count)
+
+ let[@inline never] callback () =
+- fp_backtrace ();
++ fp_backtrace Sys.argv.(0);
+ 0
+
+ let _ = Callback.register "callback" callback
+diff --git a/testsuite/tests/frame-pointers/stack_realloc2.reference b/testsuite/tests/frame-pointers/stack_realloc2.reference
+index ae492abd88..0051f3bad0 100644
+--- a/testsuite/tests/frame-pointers/stack_realloc2.reference
++++ b/testsuite/tests/frame-pointers/stack_realloc2.reference
+@@ -7,6 +7,3 @@ camlStack_realloc2.f_comp
+ caml_runstack
+ camlStack_realloc2.entry
+ caml_program
+-caml_start_program
+-caml_main/caml_startup
+-main
+diff --git a/testsuite/tests/frame-pointers/stack_realloc2.run b/testsuite/tests/frame-pointers/stack_realloc2.run
+deleted file mode 100644
+index e96b5ea13a..0000000000
+--- a/testsuite/tests/frame-pointers/stack_realloc2.run
++++ /dev/null
+@@ -1,4 +0,0 @@
+-#!/bin/sh
+-
+-${program} 2>&1 \
+- | ${test_source_directory}/filter-locations.sh ${program} >${output}
+--
diff --git a/SPECS/ocaml/0004-Fix-s390x-stack-reallocation-code-in-PIC-mode.patch b/SPECS/ocaml/0004-Fix-s390x-stack-reallocation-code-in-PIC-mode.patch
new file mode 100644
index 00000000000..03eb7d0e8be
--- /dev/null
+++ b/SPECS/ocaml/0004-Fix-s390x-stack-reallocation-code-in-PIC-mode.patch
@@ -0,0 +1,24 @@
+From 81d3fb3e20afede32298e4d3e78bcebf6a22858a Mon Sep 17 00:00:00 2001
+From: Vincent Laviron
+Date: Fri, 15 Dec 2023 10:00:52 +0100
+Subject: [PATCH 4/4] Fix s390x stack reallocation code in PIC mode
+
+(cherry picked from commit c40a955c029a203d0d7f05718e297e66987ec87f)
+---
+ asmcomp/s390x/emit.mlp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/asmcomp/s390x/emit.mlp b/asmcomp/s390x/emit.mlp
+index 35ade079f6..0212cf3b00 100644
+--- a/asmcomp/s390x/emit.mlp
++++ b/asmcomp/s390x/emit.mlp
+@@ -751,7 +751,7 @@ let fundecl fundecl =
+ ` lay %r15, -8(%r15)\n`;
+ ` stg %r14, 0(%r15)\n`;
+ ` lgfi %r12, {emit_int s}\n`;
+- ` brasl %r14, {emit_symbol "caml_call_realloc_stack"}\n`;
++ emit_call "caml_call_realloc_stack";
+ ` lg %r14, 0(%r15)\n`;
+ ` la %r15, 8(%r15)\n`;
+ ` brcl 15, {emit_label ret}\n`
+--
diff --git a/SPECS/ocaml-augeas/macros.ocaml-rpm b/SPECS/ocaml/macros.ocaml-rpm
similarity index 100%
rename from SPECS/ocaml-augeas/macros.ocaml-rpm
rename to SPECS/ocaml/macros.ocaml-rpm
diff --git a/SPECS/ocaml/ocaml.signatures.json b/SPECS/ocaml/ocaml.signatures.json
index fe9762d62f5..318bf9c311d 100644
--- a/SPECS/ocaml/ocaml.signatures.json
+++ b/SPECS/ocaml/ocaml.signatures.json
@@ -1,5 +1,7 @@
{
"Signatures": {
- "ocaml-4.13.1.tar.xz": "931d78dfad5bf938800c7a00eb647a27bbfe465a96a8eaae858ecbdb22e6fde8"
+ "ocaml-5.1.1.tar.gz": "57f7b382b3d71198413ede405d95ef3506f1cdc480cda1dca1e26b37cb090e17",
+ "macros.ocaml-rpm": "82a9a732cffc1b5a87c240ca0637820967f9a9e7af704998e3ed5966e4ed3b67",
+ "ocaml_files.py": "b1649462b720fb401d491bd5cbe879870a9f50bd99608d6488fc235a0e5f11e3"
}
}
diff --git a/SPECS/ocaml/ocaml.spec b/SPECS/ocaml/ocaml.spec
index 026a33de12a..d8ec4af2c41 100644
--- a/SPECS/ocaml/ocaml.spec
+++ b/SPECS/ocaml/ocaml.spec
@@ -1,45 +1,130 @@
-%global __ocaml_requires_opts -c -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte'
-%global __ocaml_provides_opts -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte'
-%global majmin %(echo %{version} | cut -d. -f1-2)
-Summary: OCaml compiler and programming environment
+# Don't add -Wl,-dT,
+%undefine _package_note_flags
+
+# OCaml 5.1 broke building with LTO. A file prims.c is generated with primitive
+# function declarations, all with "void" for their parameter list. This does
+# not match the real definitions, leading to lots of -Wlto-type-mismatch
+# warnings. These change the output of the tests, leading to many failed tests.
+%global _lto_cflags %{nil}
+
+# OCaml has a bytecode backend that works on anything with a C
+# compiler, and a native code backend available on a subset of
+# architectures. A further subset of architectures support native
+# dynamic linking.
+
+%ifarch %{ocaml_native_compiler}
+%global native_compiler 1
+%else
+%global native_compiler 0
+%endif
+
+%ifarch %{ocaml_natdynlink}
+%global natdynlink 1
+%else
+%global natdynlink 0
+%endif
+
+# i686 support was dropped in OCaml 5 / Fedora 39.
+ExcludeArch: %{ix86}
+
+# These are all the architectures that the tests run on. The tests
+# take a long time to run, so don't run them on slow machines.
+%global test_arches aarch64 %{power64} riscv64 s390x x86_64
+# These are the architectures for which the tests must pass otherwise
+# the build will fail.
+#global test_arches_required aarch64 ppc64le x86_64
+%global test_arches_required NONE
+
+# Architectures where parallel builds fail.
+#global no_parallel_build_arches aarch64
+
+#global rcver +git
+%global rcver %{nil}
+
Name: ocaml
-Version: 4.13.1
-Release: 3%{?dist}
-License: QPL and (LGPLv2+ with exceptions)
+Version: 5.1.1
+Release: 1%{?dist}
+Summary: OCaml compiler and programming environment
+License: LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception
Vendor: Microsoft Corporation
Distribution: Azure Linux
URL: https://www.ocaml.org
-Source0: https://caml.inria.fr/pub/distrib/%{name}-%{majmin}/%{name}-%{version}.tar.xz
-Patch0001: 0001-Don-t-add-rpaths-to-libraries.patch
-Patch0002: 0002-configure-Allow-user-defined-C-compiler-flags.patch
-Patch0003: 0003-configure-Remove-incorrect-assumption-about-cross-co.patch
-Patch0004: 0004-remove-unused-var-in-alloc_aync_stubs.patch
+Source0: https://github.com/ocaml/ocaml/archive/%{version}/%{name}-%{version}.tar.gz
+Source1: macros.ocaml-rpm
+Source2: ocaml_files.py
+
+# IMPORTANT NOTE:
+#
+# These patches are generated from unpacked sources stored in a
+# pagure.io git repository. If you change the patches here, they will
+# be OVERWRITTEN by the next update. Instead, request commit access
+# to the pagure project:
+#
+# https://pagure.io/fedora-ocaml
+#
+# Current branch: fedora-40-5.1.1
+#
+# ALTERNATIVELY add a patch to the end of the list (leaving the
+# existing patches unchanged) adding a comment to note that it should
+# be incorporated into the git repo at a later time.
+
+# Fedora-specific patches
+Patch: 0001-Don-t-add-rpaths-to-libraries.patch
+Patch: 0002-configure-Allow-user-defined-C-compiler-flags.patch
+
+# https://github.com/ocaml/ocaml/pull/11594
+Patch: 0003-Update-framepointers-tests-to-avoid-false-positive-w.patch
+
+# https://github.com/ocaml/ocaml/issues/12829
+# https://github.com/ocaml/ocaml/pull/12831
+Patch: 0004-Fix-s390x-stack-reallocation-code-in-PIC-mode.patch
+
+BuildRequires: make
+BuildRequires: git
+BuildRequires: gcc
BuildRequires: autoconf
-BuildRequires: binutils-devel
-BuildRequires: chrpath
BuildRequires: gawk
-BuildRequires: gcc
-BuildRequires: gdbm-devel
-BuildRequires: git
-BuildRequires: make
-BuildRequires: ncurses-devel
+BuildRequires: hardlink
BuildRequires: perl-interpreter
BuildRequires: util-linux
-%if 0%{?with_check}
-BuildRequires: diffutils
-%endif
-# ocamlopt runs gcc to link binaries. Because Azure Linux includes
-# hardening flags automatically, azurelinux-rpm-macros is also required.
-Requires: azurelinux-rpm-macros
+BuildRequires: /usr/bin/annocheck
+BuildRequires: pkgconfig(libzstd)
+
+# Documentation requirements
+BuildRequires: asciidoc
+BuildRequires: python3-pygments
+
+# ocamlopt runs gcc to link binaries. Because Fedora includes
+# hardening flags automatically, redhat-rpm-config is also required.
+# Compressed marshaling requires libzstd-devel.
Requires: gcc
+Requires: redhat-rpm-config
+Requires: libzstd-devel
+
# Because we pass -c flag to ocaml-find-requires (to avoid circular
# dependencies) we also have to explicitly depend on the right version
# of ocaml-runtime.
Requires: ocaml-runtime = %{version}-%{release}
-# Bundles an MD5 implementation in byterun/md5.{c,h}
+
+# Force ocaml-srpm-macros to be at the latest version, both for builds
+# and installs, since OCaml 5.1 has a different set of native code
+# generators than previous versions.
+BuildRequires: ocaml-srpm-macros >= 9
+Requires: ocaml-srpm-macros >= 9
+
+# Bundles an MD5 implementation in runtime/caml/md5.h and runtime/md5.c
Provides: bundled(md5-plumb)
+
Provides: ocaml(compiler) = %{version}
+%if %{native_compiler}
+%global __ocaml_requires_opts -c -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte'
+%else
+%global __ocaml_requires_opts -c -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte' -i Backend_intf -i Inlining_decision_intf -i Simplify_boxed_integer_ops_intf
+%endif
+%global __ocaml_provides_opts -f '%{buildroot}%{_bindir}/ocamlrun %{buildroot}%{_bindir}/ocamlobjinfo.byte'
+
+
%description
OCaml is a high-level, strongly-typed, functional and object-oriented
programming language from the ML family of languages.
@@ -49,7 +134,12 @@ and an optimizing native-code compiler), an interactive toplevel system,
parsing tools (Lex,Yacc), a replay debugger, a documentation generator,
and a comprehensive library.
-%package runtime
+
+%package runtime
+# LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception: the project as a whole
+# LicenseRef-Fedora-Public-Domain: the MD5 implementation in runtime/caml/md5.h
+# and runtime/md5.c
+License: LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception AND LicenseRef-Fedora-Public-Domain
Summary: OCaml runtime environment
Requires: util-linux
Provides: ocaml(runtime) = %{version}
@@ -61,35 +151,45 @@ programming language from the ML family of languages.
This package contains the runtime environment needed to run OCaml
bytecode.
-%package source
+
+%package source
Summary: Source code for OCaml libraries
Requires: ocaml = %{version}-%{release}
%description source
Source code for OCaml libraries.
-%package ocamldoc
+
+%package ocamldoc
+# LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception: the project as a whole
+# LicenseRef-Fedora-Public-Domain: ocamldoc/ocamldoc.sty
+License: LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception AND LicenseRef-Fedora-Public-Domain
Summary: Documentation generator for OCaml
Requires: ocaml = %{version}-%{release}
-Provides: ocamldoc = %{version}-%{release}
+Provides: ocamldoc = %{version}
%description ocamldoc
Documentation generator for OCaml.
+
%package docs
Summary: Documentation for OCaml
+BuildArch: noarch
Requires: ocaml = %{version}-%{release}
+
%description docs
OCaml is a high-level, strongly-typed, functional and object-oriented
programming language from the ML family of languages.
This package contains man pages.
+
%package compiler-libs
Summary: Compiler libraries for OCaml
Requires: ocaml = %{version}-%{release}
+
%description compiler-libs
OCaml is a high-level, strongly-typed, functional and object-oriented
programming language from the ML family of languages.
@@ -99,35 +199,113 @@ compilers, useful for the development of some OCaml applications.
Note that this exposes internal details of the OCaml compiler which
may not be portable between versions.
+
+%package rpm-macros
+# LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception: the project as a whole
+# BSD-3-Clause: ocaml_files.py
+License: LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception AND BSD-3-Clause
+Summary: RPM macros for building OCaml packages
+BuildArch: noarch
+Requires: ocaml = %{version}-%{release}
+Requires: python3
+
+
+%description rpm-macros
+This package contains macros that are useful for building OCaml RPMs.
+
+
%prep
-%autosetup -p1
+%autosetup -S git -n %{name}-%{version}%{rcver}
# Patches touch configure.ac, so rebuild it:
autoconf --force
+
%build
-# We set --libdir to the unusual directory because we want OCaml to
-# install its libraries and other files into a subdirectory.
+%ifnarch %{no_parallel_build_arches}
+make="%make_build"
+%else
+unset MAKEFLAGS
+make=make
+%endif
+
+# Set ocamlmklib default flags to include Fedora linker flags
+sed -i '/ld_opts/s|\[\]|["%{build_ldflags}"]|' tools/ocamlmklib.ml
+
+# Expose a dependency on the math library
+sed -i '/^EXTRACAMLFLAGS=/aLINKOPTS=-cclib -lm' otherlibs/unix/Makefile
+
+# Don't use %%configure macro because it sets --build, --host which
+# breaks some incorrect assumptions made by OCaml's configure.ac
#
-# Force --host because of:
+# See also:
# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/2O4HBOK6PTQZAFAVIRDVMZGG2PYB2QHM/
-# (see also https://github.com/ocaml/ocaml/issues/8647)
+# https://github.com/ocaml/ocaml/issues/8647
+#
+# We set --libdir to the unusual directory because we want OCaml to
+# install its libraries and other files into a subdirectory.
#
# OC_CFLAGS/OC_LDFLAGS control what flags OCaml passes to the linker
# when doing final linking of OCaml binaries. Setting these is
-# necessary to ensure that generated binaries have Azure Linux hardening
+# necessary to ensure that generated binaries have Fedora hardening
# features.
-%configure \
- OC_CFLAGS="$CFLAGS" \
- OC_LDFLAGS="$LDFLAGS" \
-%if 0%{?with_check}
+./configure \
+ --prefix=%{_prefix} \
+ --sysconfdir=%{_sysconfdir} \
+ --mandir=%{_mandir} \
+ --libdir=%{_libdir}/ocaml \
+ --enable-flambda \
+%if %{native_compiler}
+ --enable-native-compiler \
+ --enable-native-toplevel \
+%else
+ --disable-native-compiler \
+ --disable-native-toplevel \
+%endif
+%ifarch x86_64
+%if 0%{?_include_frame_pointers}
+ --enable-frame-pointers \
+%endif
+%endif
+%ifarch %{test_arches}
--enable-ocamltest \
+%else
+ --disable-ocamltest \
+%endif
+ OC_CFLAGS='%{build_cflags}' \
+ OC_LDFLAGS='%{build_ldflags}' \
+ %{nil}
+$make world
+%if %{native_compiler}
+$make opt
+$make opt.opt
+%endif
+
+# Build the README and fix up references to other doc files
+asciidoc -d book README.adoc
+for fil in CONTRIBUTING.md HACKING.adoc INSTALL.adoc README.win32.adoc; do
+ sed -e "s,\"$fil\",\"https://github.com/ocaml/ocaml/blob/trunk/$fil\"," \
+ -i README.html
+done
+
+
+%check
+%ifarch %{ocaml_native_compiler}
+# For information only, compile a binary and dump the annocheck data
+# from it. Useful so we know if hardening is being enabled, but don't
+# fail because not every hardening feature can be enabled here.
+echo 'print_endline "hello, world"' > hello.ml
+./ocamlopt.opt -verbose -I stdlib hello.ml -o hello ||:
+annocheck -v hello ||:
+%endif
+
+%ifarch %{test_arches}
+%ifarch %{test_arches_required}
+make -j1 tests
+%else
+make -j1 tests ||:
+%endif
%endif
- --libdir=%{_libdir}/ocaml \
- --host=`./build-aux/config.guess`
-%make_build world
-%make_build opt
-%make_build opt.opt
%install
%make_install
@@ -135,87 +313,94 @@ perl -pi -e "s|^%{buildroot}||" %{buildroot}%{_libdir}/ocaml/ld.conf
echo %{version} > %{buildroot}%{_libdir}/ocaml/fedora-ocaml-release
-# Remove rpaths from stublibs .so files.
-chrpath --delete %{buildroot}%{_libdir}/ocaml/stublibs/*.so
+# Remove the installed documentation. We will install it using %%doc
+rm -rf %{buildroot}%{_docdir}/ocaml
-find %{buildroot} -type f -name "*.la" -delete -print
+mkdir -p %{buildroot}%{_rpmmacrodir}
+install -m 0644 %{SOURCE1} %{buildroot}%{_rpmmacrodir}/macros.ocaml-rpm
-# Remove .cmt and .cmti files, for now. We could package them later.
-# See also: http://www.ocamlpro.com/blog/2012/08/20/ocamlpro-and-4.00.0.html
-find %{buildroot} \( -name '*.cmt' -o -name '*.cmti' \) -a -delete -print
+mkdir -p %{buildroot}%{_rpmconfigdir}/azl
+install -m 0644 %{SOURCE2} %{buildroot}%{_rpmconfigdir}/azl
+
+# Link, rather than copy, identical binaries
+hardlink -t %{buildroot}%{_libdir}/ocaml/stublibs
-%check
-cd testsuite
-make -j1 all
%files
%license LICENSE
%{_bindir}/ocaml
%{_bindir}/ocamlcmt
+%{_bindir}/ocamlcp
%{_bindir}/ocamldebug
+%{_bindir}/ocamlmklib
+%{_bindir}/ocamlmktop
+%{_bindir}/ocamlprof
%{_bindir}/ocamlyacc
# symlink to either .byte or .opt version
%{_bindir}/ocamlc
-%{_bindir}/ocamlcp
%{_bindir}/ocamldep
%{_bindir}/ocamllex
-%{_bindir}/ocamlmklib
-%{_bindir}/ocamlmktop
%{_bindir}/ocamlobjinfo
-%{_bindir}/ocamloptp
-%{_bindir}/ocamlprof
# bytecode versions
%{_bindir}/ocamlc.byte
-%{_bindir}/ocamlcp.byte
%{_bindir}/ocamldep.byte
%{_bindir}/ocamllex.byte
-%{_bindir}/ocamlmklib.byte
-%{_bindir}/ocamlmktop.byte
%{_bindir}/ocamlobjinfo.byte
-%{_bindir}/ocamloptp.byte
-%{_bindir}/ocamlprof.byte
+%if %{native_compiler}
# native code versions
%{_bindir}/ocamlc.opt
-%{_bindir}/ocamlcp.opt
%{_bindir}/ocamldep.opt
%{_bindir}/ocamllex.opt
-%{_bindir}/ocamlmklib.opt
-%{_bindir}/ocamlmktop.opt
%{_bindir}/ocamlobjinfo.opt
-%{_bindir}/ocamloptp.opt
-%{_bindir}/ocamlprof.opt
+%endif
+
+%if %{native_compiler}
+%{_bindir}/ocamlnat
%{_bindir}/ocamlopt
%{_bindir}/ocamlopt.byte
%{_bindir}/ocamlopt.opt
+%{_bindir}/ocamloptp
+%endif
%{_libdir}/ocaml/camlheader
%{_libdir}/ocaml/camlheader_ur
%{_libdir}/ocaml/expunge
-%{_libdir}/ocaml/eventlog_metadata
-%{_libdir}/ocaml/extract_crc
%{_libdir}/ocaml/ld.conf
%{_libdir}/ocaml/Makefile.config
+
%{_libdir}/ocaml/*.a
-%{_libdir}/ocaml/*.cmxs
+%if %{native_compiler}
%{_libdir}/ocaml/*.cmxa
%{_libdir}/ocaml/*.cmx
%{_libdir}/ocaml/*.o
%{_libdir}/ocaml/libasmrun_shared.so
+%endif
%{_libdir}/ocaml/*.mli
+%{_libdir}/ocaml/sys.ml.in
%{_libdir}/ocaml/libcamlrun_shared.so
-%{_libdir}/ocaml/threads/*.mli
-%{_libdir}/ocaml/threads/*.a
-%{_libdir}/ocaml/threads/*.cmxa
-%{_libdir}/ocaml/threads/*.cmx
+
+%{_libdir}/ocaml/{dynlink,runtime_events,str,threads,unix}/*.mli
+%if %{native_compiler}
+%{_libdir}/ocaml/{dynlink,runtime_events,str,threads,unix}/*.a
+%{_libdir}/ocaml/{dynlink,runtime_events,str,threads,unix}/*.cmxa
+%{_libdir}/ocaml/{dynlink,profiling,runtime_events,str,threads,unix}/*.cmx
+%{_libdir}/ocaml/profiling/*.o
+%endif
+%if %{natdynlink}
+%{_libdir}/ocaml/{runtime_events,str,unix}/*.cmxs
+%endif
+
+# headers
%{_libdir}/ocaml/caml
+
%files runtime
+%doc README.html Changes
%license LICENSE
-%doc README.adoc Changes
%{_bindir}/ocamlrun
%{_bindir}/ocamlrund
%{_bindir}/ocamlruni
@@ -226,14 +411,39 @@ make -j1 all
%{_libdir}/ocaml/camlheaderd
%{_libdir}/ocaml/camlheaderi
%{_libdir}/ocaml/stublibs
+%dir %{_libdir}/ocaml/dynlink
+%{_libdir}/ocaml/dynlink/META
+%{_libdir}/ocaml/dynlink/*.cmi
+%{_libdir}/ocaml/dynlink/*.cma
+%dir %{_libdir}/ocaml/profiling
+%{_libdir}/ocaml/profiling/*.cmo
+%{_libdir}/ocaml/profiling/*.cmi
+%dir %{_libdir}/ocaml/runtime_events
+%{_libdir}/ocaml/runtime_events/META
+%{_libdir}/ocaml/runtime_events/*.cmi
+%{_libdir}/ocaml/runtime_events/*.cma
+%{_libdir}/ocaml/stdlib
+%dir %{_libdir}/ocaml/str
+%{_libdir}/ocaml/str/META
+%{_libdir}/ocaml/str/*.cmi
+%{_libdir}/ocaml/str/*.cma
%dir %{_libdir}/ocaml/threads
+%{_libdir}/ocaml/threads/META
%{_libdir}/ocaml/threads/*.cmi
%{_libdir}/ocaml/threads/*.cma
+%dir %{_libdir}/ocaml/unix
+%{_libdir}/ocaml/unix/META
+%{_libdir}/ocaml/unix/*.cmi
+%{_libdir}/ocaml/unix/*.cma
%{_libdir}/ocaml/fedora-ocaml-release
+
%files source
%license LICENSE
%{_libdir}/ocaml/*.ml
+%{_libdir}/ocaml/*.cmt*
+%{_libdir}/ocaml/*/*.cmt*
+
%files ocamldoc
%license LICENSE
@@ -241,23 +451,28 @@ make -j1 all
%{_bindir}/ocamldoc*
%{_libdir}/ocaml/ocamldoc
+
%files docs
%{_mandir}/man1/*
%{_mandir}/man3/*
+
%files compiler-libs
%license LICENSE
-%dir %{_libdir}/ocaml/compiler-libs
-%{_libdir}/ocaml/compiler-libs/*.mli
-%{_libdir}/ocaml/compiler-libs/*.cmi
-%{_libdir}/ocaml/compiler-libs/*.cmo
-%{_libdir}/ocaml/compiler-libs/*.cma
-%{_libdir}/ocaml/compiler-libs/*.a
-%{_libdir}/ocaml/compiler-libs/*.cmxa
-%{_libdir}/ocaml/compiler-libs/*.cmx
-%{_libdir}/ocaml/compiler-libs/*.o
+%{_libdir}/ocaml/compiler-libs
+
+
+%files rpm-macros
+%{_rpmmacrodir}/macros.ocaml-rpm
+%{_rpmconfigdir}/azl/ocaml_files.py
+
%changelog
+* Fri Mar 08 2024 Mykhailo Bykhovtsev - 5.1.1-1
+- Upgraded ocaml to 5.1.1
+- Importing and adopting spec changes from Fedora (License: MIT).
+- Removed unused patch files and added new.
+
* Thu Feb 22 2024 Pawel Winogrodzki - 4.13.1-3
- Updating naming for 3.0 version of Azure Linux.
diff --git a/SPECS/ocaml-augeas/ocaml_files.py b/SPECS/ocaml/ocaml_files.py
similarity index 99%
rename from SPECS/ocaml-augeas/ocaml_files.py
rename to SPECS/ocaml/ocaml_files.py
index cf4afd19b0c..cbcacd950e9 100644
--- a/SPECS/ocaml-augeas/ocaml_files.py
+++ b/SPECS/ocaml/ocaml_files.py
@@ -448,4 +448,4 @@ def ocaml_files(no_devel: bool, separate: bool, install: bool, buildroot: str,
args.separate,
args.install,
args.buildroot,
- args.libdir)
+ args.libdir)
\ No newline at end of file
diff --git a/SPECS/supermin/supermin-azurelinux.patch b/SPECS/supermin/supermin-azurelinux.patch
index f4183f4e2e4..8699ecf93ac 100644
--- a/SPECS/supermin/supermin-azurelinux.patch
+++ b/SPECS/supermin/supermin-azurelinux.patch
@@ -1,18 +1,17 @@
-From f4a3020f202d67ad5682304e7710bfc14f1320eb Mon Sep 17 00:00:00 2001
+From 5f7c77a7412194dbbe3f0dc846f2a608130eb5b7 Mon Sep 17 00:00:00 2001
From: Thomas Crain
Date: Wed, 19 Jan 2022 21:36:29 -0800
Subject: [PATCH] Add Microsoft Azure Linux support to supermin
-
---
src/ph_rpm.ml | 18 +++++++++++++++++-
- tests/test-harder.sh | 32 ++++++++++++++++++++++++++++++++
- 2 files changed, 49 insertions(+), 1 deletion(-)
+ tests/test-harder.sh | 33 +++++++++++++++++++++++++++++++++
+ 2 files changed, 50 insertions(+), 1 deletion(-)
diff --git a/src/ph_rpm.ml b/src/ph_rpm.ml
-index 549bd9a..760c815 100644
+index 5061d32..389f445 100644
--- a/src/ph_rpm.ml
+++ b/src/ph_rpm.ml
-@@ -65,6 +65,12 @@ let ibm_powerkvm_detect () =
+@@ -67,6 +67,12 @@ let ibm_powerkvm_detect () =
(stat "/etc/ibm_powerkvm-release").st_kind = S_REG
with Unix_error _ -> false
@@ -25,7 +24,7 @@ index 549bd9a..760c815 100644
let settings = ref no_settings
let rpm_major, rpm_minor, rpm_arch = ref 0, ref 0, ref ""
let zypper_major, zypper_minor, zypper_patch = ref 0, ref 0, ref 0
-@@ -450,6 +456,10 @@ and mageia_download_all_packages pkgs dir =
+@@ -462,6 +468,10 @@ and mageia_download_all_packages pkgs dir =
rpm_unpack tdir dir
@@ -36,7 +35,7 @@ index 549bd9a..760c815 100644
and download_all_packages_with_urpmi pkgs dir tdir =
let rpms = List.map rpm_package_name (PackageSet.elements pkgs) in
-@@ -544,4 +554,10 @@ let () =
+@@ -576,4 +586,10 @@ let () =
ph_detect = openmandriva_detect;
ph_download_package = PHDownloadAllPackages openmandriva_download_all_packages;
} in
@@ -49,7 +48,7 @@ index 549bd9a..760c815 100644
+ } in
+ register_package_handler "azurelinux" "rpm" azurelinux
diff --git a/tests/test-harder.sh b/tests/test-harder.sh
-index aceef21..223cae9 100755
+index aceef21..a9ff641 100755
--- a/tests/test-harder.sh
+++ b/tests/test-harder.sh
@@ -32,6 +32,7 @@ if [ -f /etc/os-release ]; then
@@ -69,16 +68,17 @@ index aceef21..223cae9 100755
else
exit 77
fi
-@@ -67,6 +70,8 @@ case $distro in
+@@ -67,6 +70,9 @@ case $distro in
# installed. (See commit fb40baade8e3441b73ce6fd10a32fbbfe49cc4da)
pkgs="augeas hivex rpm"
;;
+ azurelinux)
+ pkgs="augeas hivex tar"
++ ;;
redhat)
# Choose tar because it has an epoch > 0 and is commonly
# installed. (See commit fb40baade8e3441b73ce6fd10a32fbbfe49cc4da)
-@@ -157,6 +162,33 @@ case $distro in
+@@ -157,6 +163,33 @@ case $distro in
exit 1
fi
;;
@@ -113,5 +113,5 @@ index aceef21..223cae9 100755
if [ ! -x $d2/usr/bin/augtool ]; then
echo "$0: $distro: augtool binary not installed in chroot"
--
-2.25.1
+2.34.1
diff --git a/SPECS/supermin/supermin.signatures.json b/SPECS/supermin/supermin.signatures.json
index c6374cc2eec..3698728d864 100644
--- a/SPECS/supermin/supermin.signatures.json
+++ b/SPECS/supermin/supermin.signatures.json
@@ -2,6 +2,6 @@
"Signatures": {
"supermin-find-requires": "2adbf0ddcd86bde7151679abb8876ba769807c2cfc92306cfecab976cdfc4935",
"supermin.attr": "6046070fd8ddb5452292a9e21fe5c8235ac12f1993f7d64f828c099bf22493c6",
- "supermin-5.2.2.tar.gz": "ce3921d3635c8168cfb7ca0c5a82b9d5cef5b2b271f84b776d63b8bbbeec358e"
+ "supermin-5.3.4.tar.gz": "cc0322991bea1fcc6355518474b39e2d4a341f1e2c36fd98f14c3446ef79ff70"
}
}
diff --git a/SPECS/supermin/supermin.spec b/SPECS/supermin/supermin.spec
index 8d722a74f6b..667cedbd0fc 100644
--- a/SPECS/supermin/supermin.spec
+++ b/SPECS/supermin/supermin.spec
@@ -1,5 +1,5 @@
# The source directory.
-%global source_directory 5.2-stable
+%global source_directory 5.3-development
%ifnarch %{ocaml_native_compiler}
%global __strip /bin/true
@@ -20,8 +20,8 @@
Summary: Tool for creating supermin appliances
Name: supermin
-Version: 5.2.2
-Release: 5%{?dist}
+Version: 5.3.4
+Release: 1%{?dist}
License: GPLv2+
Vendor: Microsoft Corporation
Distribution: Azure Linux
@@ -45,7 +45,7 @@ BuildRequires: findutils
# into a /boot/ subdirectory. Read the
# kernel-install script to understand why.
BuildRequires: grubby
-BuildRequires: ocaml
+BuildRequires: ocaml >= 5.1.1
BuildRequires: ocaml-findlib-devel
BuildRequires: rpm
BuildRequires: rpm-devel
@@ -129,6 +129,10 @@ make check || {
%{_rpmconfigdir}/supermin-find-requires
%changelog
+* Tue May 28 2024 Mykhailo Bykhovtsev - 5.3.4-1
+- Upgrade to version 5.3.4 to support building using ocaml 5.1.1
+- Fixed patch for the test suite
+
* Wed May 22 2024 Suresh Babu Chalamalasetty - 5.2.2-5
- update to build dep latest glibc-static version
diff --git a/SPECS/vim/macros.vim b/SPECS/vim/macros.vim
new file mode 100644
index 00000000000..57a6f88508b
--- /dev/null
+++ b/SPECS/vim/macros.vim
@@ -0,0 +1 @@
+%vimfiles_root %{_datadir}/vim/vimfiles
\ No newline at end of file
diff --git a/SPECS/vim/vim.signatures.json b/SPECS/vim/vim.signatures.json
index 5518df6b9ce..d373f282cde 100644
--- a/SPECS/vim/vim.signatures.json
+++ b/SPECS/vim/vim.signatures.json
@@ -1,6 +1,7 @@
{
"Signatures": {
- "vim-9.0.2190.tar.gz": "c0f06f783e922136e64570e754ed8eac565725206460a88f0c43b7b175573099"
+ "vim-9.0.2190.tar.gz": "c0f06f783e922136e64570e754ed8eac565725206460a88f0c43b7b175573099",
+ "macros.vim": "98d2e285e93e339defc13ef1dc4fa76f24e3fca6282e4196a3dae45de778eab8"
}
}
diff --git a/SPECS/vim/vim.spec b/SPECS/vim/vim.spec
index 8eb6c4217f1..4b2d06ae1b8 100644
--- a/SPECS/vim/vim.spec
+++ b/SPECS/vim/vim.spec
@@ -2,13 +2,14 @@
Summary: Text editor
Name: vim
Version: 9.0.2190
-Release: 2%{?dist}
+Release: 3%{?dist}
License: Vim
Vendor: Microsoft Corporation
Distribution: Azure Linux
Group: Applications/Editors
URL: https://www.vim.org
Source0: https://github.com/%{name}/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
+Source1: macros.vim
BuildRequires: ncurses-devel
BuildRequires: python3-devel
Requires(post): sed
@@ -28,6 +29,13 @@ Conflicts: toybox
%description extra
The vim extra package contains a extra files for powerful text editor.
+%package rpm-macros
+Summary: RPM macros for Vim text editor
+BuildArch: noarch
+
+%description rpm-macros
+The vim-rpm-macros package contains macros.vim needed to define RPM macros
+
%prep
%autosetup -p1
echo '#define SYS_VIMRC_FILE "%{_sysconfdir}/vimrc"' >> src/feature.h
@@ -41,6 +49,10 @@ echo '#define SYS_VIMRC_FILE "%{_sysconfdir}/vimrc"' >> src/feature.h
%make_install
ln -sv vim %{buildroot}%{_bindir}/vi
install -vdm 755 %{buildroot}%{_sysconfdir}
+
+mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d/
+install -p -m644 %{SOURCE1} %{buildroot}%{_rpmconfigdir}/macros.d/
+
cat > %{buildroot}%{_sysconfdir}/vimrc << "EOF"
" Begin %{_sysconfdir}/vimrc
@@ -201,7 +213,14 @@ fi
%{_bindir}/vim
%{_bindir}/vimdiff
+%files rpm-macros
+%{_rpmconfigdir}/macros.d/macros.vim
+
%changelog
+* Tue May 21 2024 Mykhailo Bykhovtsev - 9.0.2190-3
+- Added vim-rpm-macros subpackage
+- Add macros.vim to the new subpackage
+
* Thu Mar 21 2024 Andy Zaugg - 9.0.2190-2
- Tweek vimrc, remove double escape quit, remove vim bell, add ai and hlsearch and add :W for sudo write
@@ -213,7 +232,7 @@ fi
- Remove patches that no longer apply in the new version.
- Remove file listed twice.
-* Wed Oct 11 2023 Mykhailo Bykhovtsev - 9.0.1897-3
+* Wed Oct 11 2023 Mykhailo Bykhovtsev - 9.0.1897-3
- Patch CVE-2023-5441
* Mon Oct 09 2023 Mitch Zhu - 9.0.1897-2
diff --git a/cgmanifest.json b/cgmanifest.json
index f5482aa9d92..da4bbf3ca63 100644
--- a/cgmanifest.json
+++ b/cgmanifest.json
@@ -195,8 +195,8 @@
"type": "other",
"other": {
"name": "annobin",
- "version": "9.27",
- "downloadUrl": "https://nickc.fedorapeople.org/annobin-9.27.tar.xz"
+ "version": "12.49",
+ "downloadUrl": "https://nickc.fedorapeople.org/annobin-12.49.tar.xz"
}
}
},
@@ -14362,8 +14362,8 @@
"type": "other",
"other": {
"name": "ocaml",
- "version": "4.13.1",
- "downloadUrl": "https://caml.inria.fr/pub/distrib/ocaml-4.13.1/ocaml-4.13.1.tar.xz"
+ "version": "5.1.1",
+ "downloadUrl": "https://github.com/ocaml/ocaml/archive/5.1.1/ocaml-5.1.1.tar.gz"
}
}
},
@@ -14402,8 +14402,8 @@
"type": "other",
"other": {
"name": "ocaml-base",
- "version": "0.15.0",
- "downloadUrl": "https://github.com/janestreet/base/archive/v0.15.0/base-0.15.0.tar.gz"
+ "version": "0.16.3",
+ "downloadUrl": "https://github.com/janestreet/base/archive/v0.16.3/base-0.16.3.tar.gz"
}
}
},
@@ -14437,6 +14437,16 @@
}
}
},
+ {
+ "component": {
+ "type": "other",
+ "other": {
+ "name": "ocaml-camlp-streams",
+ "version": "5.0.1",
+ "downloadUrl": "https://github.com/ocaml/camlp-streams/archive/v5.0.1/camlp-streams-5.0.1.tar.gz"
+ }
+ }
+ },
{
"component": {
"type": "other",
@@ -14452,8 +14462,8 @@
"type": "other",
"other": {
"name": "ocaml-camomile",
- "version": "1.0.2",
- "downloadUrl": "https://github.com/yoriyuki/Camomile/archive/refs/tags/1.0.2.tar.gz"
+ "version": "2.0.0",
+ "downloadUrl": "https://github.com/ocaml-community/Camomile/archive/refs/tags/v2.0.0.tar.gz"
}
}
},
@@ -14492,8 +14502,8 @@
"type": "other",
"other": {
"name": "ocaml-cppo",
- "version": "1.6.6",
- "downloadUrl": "https://github.com/ocaml-community/cppo/archive/v1.6.6.tar.gz"
+ "version": "1.6.9",
+ "downloadUrl": "https://github.com/ocaml-community/cppo/archive/v1.6.9.tar.gz"
}
}
},
@@ -14502,8 +14512,8 @@
"type": "other",
"other": {
"name": "ocaml-csexp",
- "version": "1.3.2",
- "downloadUrl": "https://github.com/ocaml-dune/csexp/releases/download/1.3.2/csexp-1.3.2.tbz"
+ "version": "1.5.2",
+ "downloadUrl": "https://github.com/ocaml-dune/csexp/archive/refs/tags/1.5.2.tar.gz"
}
}
},
@@ -14542,8 +14552,8 @@
"type": "other",
"other": {
"name": "ocaml-dune",
- "version": "2.8.5",
- "downloadUrl": "https://github.com/ocaml/dune/archive/2.8.5/dune-2.8.5.tar.gz"
+ "version": "3.15.2",
+ "downloadUrl": "https://github.com/ocaml/dune/archive/3.15.2/dune-3.15.2.tar.gz"
}
}
},
@@ -14562,8 +14572,8 @@
"type": "other",
"other": {
"name": "ocaml-fileutils",
- "version": "0.5.2",
- "downloadUrl": "https://github.com/gildor478/ocaml-fileutils/archive/refs/tags/0.5.2.tar.gz"
+ "version": "0.6.4",
+ "downloadUrl": "https://github.com/gildor478/ocaml-fileutils/archive/refs/tags/v0.6.4.tar.gz"
}
}
},
@@ -14572,8 +14582,8 @@
"type": "other",
"other": {
"name": "ocaml-findlib",
- "version": "1.8.1",
- "downloadUrl": "http://download.camlcity.org/download/findlib-1.8.1.tar.gz"
+ "version": "1.9.6",
+ "downloadUrl": "http://download.camlcity.org/download/findlib-1.9.6.tar.gz"
}
}
},
@@ -14642,8 +14652,8 @@
"type": "other",
"other": {
"name": "ocaml-lwt",
- "version": "5.4.1",
- "downloadUrl": "https://github.com/ocsigen/lwt/archive/refs/tags/5.4.1.tar.gz"
+ "version": "5.7.0",
+ "downloadUrl": "https://github.com/ocsigen/lwt/archive/refs/tags/5.7.0.tar.gz"
}
}
},
@@ -14682,8 +14692,8 @@
"type": "other",
"other": {
"name": "ocaml-num",
- "version": "1.3",
- "downloadUrl": "https://github.com/ocaml/num/archive/v1.3/ocaml-num-1.3.tar.gz"
+ "version": "1.5",
+ "downloadUrl": "https://github.com/ocaml/num/archive/v1.5/ocaml-num-1.5.tar.gz"
}
}
},
@@ -14692,8 +14702,8 @@
"type": "other",
"other": {
"name": "ocaml-ocamlbuild",
- "version": "0.14.2",
- "downloadUrl": "https://github.com/ocaml/ocamlbuild/archive/0.14.2.tar.gz"
+ "version": "0.14.3",
+ "downloadUrl": "https://github.com/ocaml/ocamlbuild/archive/0.14.3.tar.gz"
}
}
},
@@ -14702,8 +14712,8 @@
"type": "other",
"other": {
"name": "ocaml-ocplib-endian",
- "version": "1.1",
- "downloadUrl": "https://github.com/OCamlPro/ocplib-endian/archive/1.1/ocplib-endian-1.1.tar.gz"
+ "version": "1.2",
+ "downloadUrl": "https://github.com/OCamlPro/ocplib-endian/archive/1.2/ocplib-endian-1.2.tar.gz"
}
}
},
@@ -14712,8 +14722,8 @@
"type": "other",
"other": {
"name": "ocaml-ounit",
- "version": "2.2.2",
- "downloadUrl": "https://github.com/gildor478/ounit/releases/download/v2.2.2/ounit-v2.2.2.tbz"
+ "version": "2.2.7",
+ "downloadUrl": "https://github.com/gildor478/ounit/archive/refs/tags/v2.2.7.tar.gz"
}
}
},
@@ -14722,8 +14732,18 @@
"type": "other",
"other": {
"name": "ocaml-parsexp",
- "version": "0.15.0",
- "downloadUrl": "https://github.com/janestreet/parsexp/archive/v0.15.0/parsexp-0.15.0.tar.gz"
+ "version": "0.16.0",
+ "downloadUrl": "https://github.com/janestreet/parsexp/archive/v0.16.0/parsexp-0.16.0.tar.gz"
+ }
+ }
+ },
+ {
+ "component": {
+ "type": "other",
+ "other": {
+ "name": "ocaml-pp",
+ "version": "1.2.0",
+ "downloadUrl": "https://github.com/ocaml-dune/pp/archive/refs/tags/1.2.0.tar.gz"
}
}
},
@@ -14737,13 +14757,33 @@
}
}
},
+ {
+ "component": {
+ "type": "other",
+ "other": {
+ "name": "ocaml-ppx-here",
+ "version": "0.16.0",
+ "downloadUrl": "https://github.com/janestreet/ppx_here/archive/v0.16.0/ppx_here-0.16.0.tar.gz"
+ }
+ }
+ },
+ {
+ "component": {
+ "type": "other",
+ "other": {
+ "name": "ocaml-ppx-let",
+ "version": "0.16.0",
+ "downloadUrl": "https://github.com/janestreet/ppx_let/archive/v0.16.0/ppx_let-0.16.0.tar.gz"
+ }
+ }
+ },
{
"component": {
"type": "other",
"other": {
"name": "ocaml-ppxlib",
- "version": "0.24.0",
- "downloadUrl": "https://github.com/ocaml-ppx/ppxlib/releases/download/0.24.0/ppxlib-0.24.0.tbz"
+ "version": "0.31.0",
+ "downloadUrl": "https://github.com/ocaml-ppx/ppxlib/archive/refs/tags/0.31.0.tar.gz"
}
}
},
@@ -14752,8 +14792,8 @@
"type": "other",
"other": {
"name": "ocaml-re",
- "version": "1.9.0",
- "downloadUrl": "https://github.com/ocaml/ocaml-re/archive/1.9.0/ocaml-re-1.9.0.tar.gz"
+ "version": "1.11.0",
+ "downloadUrl": "https://github.com/ocaml/ocaml-re/archive/1.11.0/ocaml-re-1.11.0.tar.gz"
}
}
},
@@ -14762,8 +14802,8 @@
"type": "other",
"other": {
"name": "ocaml-react",
- "version": "1.2.1",
- "downloadUrl": "http://erratique.ch/software/react/releases/react-1.2.1.tbz"
+ "version": "1.2.2",
+ "downloadUrl": "https://erratique.ch/software/react/releases/react-1.2.2.tbz"
}
}
},
@@ -14792,8 +14832,8 @@
"type": "other",
"other": {
"name": "ocaml-sexplib",
- "version": "0.15.0",
- "downloadUrl": "https://github.com/janestreet/sexplib/archive/v0.15.0/sexplib-0.15.0.tar.gz"
+ "version": "0.16.0",
+ "downloadUrl": "https://github.com/janestreet/sexplib/archive/v0.16.0/sexplib-0.16.0.tar.gz"
}
}
},
@@ -14817,6 +14857,16 @@
}
}
},
+ {
+ "component": {
+ "type": "other",
+ "other": {
+ "name": "ocaml-stdlib-random",
+ "version": "1.2.0",
+ "downloadUrl": "https://github.com/ocaml/stdlib-random/archive/1.2.0/stdlib-random-1.2.0.tar.gz"
+ }
+ }
+ },
{
"component": {
"type": "other",
@@ -28006,8 +28056,8 @@
"type": "other",
"other": {
"name": "supermin",
- "version": "5.2.2",
- "downloadUrl": "https://download.libguestfs.org/supermin/5.2-stable/supermin-5.2.2.tar.gz"
+ "version": "5.3.4",
+ "downloadUrl": "https://download.libguestfs.org/supermin/5.3-development/supermin-5.3.4.tar.gz"
}
}
},
diff --git a/toolkit/resources/manifests/package/pkggen_core_aarch64.txt b/toolkit/resources/manifests/package/pkggen_core_aarch64.txt
index 3c153bf8075..a7fb8d05c13 100644
--- a/toolkit/resources/manifests/package/pkggen_core_aarch64.txt
+++ b/toolkit/resources/manifests/package/pkggen_core_aarch64.txt
@@ -166,7 +166,7 @@ texinfo-7.0.3-1.azl3.aarch64.rpm
gtk-doc-1.33.2-1.azl3.noarch.rpm
autoconf-2.72-1.azl3.noarch.rpm
automake-1.16.5-1.azl3.noarch.rpm
-openssl-3.3.0-1.azl3.aarch64.rpm
+ocaml-srpm-macros-9-4.azl3.noarch.rpm
openssl-devel-3.3.0-1.azl3.aarch64.rpm
openssl-libs-3.3.0-1.azl3.aarch64.rpm
openssl-perl-3.3.0-1.azl3.aarch64.rpm
@@ -205,8 +205,8 @@ libltdl-2.4.7-1.azl3.aarch64.rpm
libltdl-devel-2.4.7-1.azl3.aarch64.rpm
lua-5.4.6-1.azl3.aarch64.rpm
lua-libs-5.4.6-1.azl3.aarch64.rpm
-azurelinux-rpm-macros-3.0-4.azl3.noarch.rpm
-azurelinux-check-macros-3.0-4.azl3.noarch.rpm
+azurelinux-rpm-macros-3.0-5.azl3.noarch.rpm
+azurelinux-check-macros-3.0-5.azl3.noarch.rpm
tdnf-3.5.6-1.azl3.aarch64.rpm
tdnf-cli-libs-3.5.6-1.azl3.aarch64.rpm
tdnf-devel-3.5.6-1.azl3.aarch64.rpm
diff --git a/toolkit/resources/manifests/package/pkggen_core_x86_64.txt b/toolkit/resources/manifests/package/pkggen_core_x86_64.txt
index 40c3e47d0b5..990cfdf56b7 100644
--- a/toolkit/resources/manifests/package/pkggen_core_x86_64.txt
+++ b/toolkit/resources/manifests/package/pkggen_core_x86_64.txt
@@ -166,7 +166,7 @@ texinfo-7.0.3-1.azl3.x86_64.rpm
gtk-doc-1.33.2-1.azl3.noarch.rpm
autoconf-2.72-1.azl3.noarch.rpm
automake-1.16.5-1.azl3.noarch.rpm
-openssl-3.3.0-1.azl3.x86_64.rpm
+ocaml-srpm-macros-9-4.azl3.noarch.rpm
openssl-devel-3.3.0-1.azl3.x86_64.rpm
openssl-libs-3.3.0-1.azl3.x86_64.rpm
openssl-perl-3.3.0-1.azl3.x86_64.rpm
@@ -205,8 +205,8 @@ libltdl-2.4.7-1.azl3.x86_64.rpm
libltdl-devel-2.4.7-1.azl3.x86_64.rpm
lua-5.4.6-1.azl3.x86_64.rpm
lua-libs-5.4.6-1.azl3.x86_64.rpm
-azurelinux-rpm-macros-3.0-4.azl3.noarch.rpm
-azurelinux-check-macros-3.0-4.azl3.noarch.rpm
+azurelinux-rpm-macros-3.0-5.azl3.noarch.rpm
+azurelinux-check-macros-3.0-5.azl3.noarch.rpm
tdnf-3.5.6-1.azl3.x86_64.rpm
tdnf-cli-libs-3.5.6-1.azl3.x86_64.rpm
tdnf-devel-3.5.6-1.azl3.x86_64.rpm
diff --git a/toolkit/resources/manifests/package/toolchain_aarch64.txt b/toolkit/resources/manifests/package/toolchain_aarch64.txt
index 7cf88db869b..982e551f0e7 100644
--- a/toolkit/resources/manifests/package/toolchain_aarch64.txt
+++ b/toolkit/resources/manifests/package/toolchain_aarch64.txt
@@ -5,7 +5,7 @@ audit-devel-3.1.2-1.azl3.aarch64.rpm
audit-libs-3.1.2-1.azl3.aarch64.rpm
autoconf-2.72-1.azl3.noarch.rpm
automake-1.16.5-1.azl3.noarch.rpm
-azurelinux-check-macros-3.0-4.azl3.noarch.rpm
+azurelinux-check-macros-3.0-5.azl3.noarch.rpm
azurelinux-repos-3.0-2.azl3.noarch.rpm
azurelinux-repos-debug-3.0-2.azl3.noarch.rpm
azurelinux-repos-debug-preview-3.0-2.azl3.noarch.rpm
@@ -19,7 +19,7 @@ azurelinux-repos-ms-oss-3.0-2.azl3.noarch.rpm
azurelinux-repos-ms-oss-preview-3.0-2.azl3.noarch.rpm
azurelinux-repos-preview-3.0-2.azl3.noarch.rpm
azurelinux-repos-shared-3.0-2.azl3.noarch.rpm
-azurelinux-rpm-macros-3.0-4.azl3.noarch.rpm
+azurelinux-rpm-macros-3.0-5.azl3.noarch.rpm
bash-5.2.15-1.azl3.aarch64.rpm
bash-debuginfo-5.2.15-1.azl3.aarch64.rpm
bash-devel-5.2.15-1.azl3.aarch64.rpm
@@ -276,6 +276,7 @@ npth-1.6-4.azl3.aarch64.rpm
npth-debuginfo-1.6-4.azl3.aarch64.rpm
npth-devel-1.6-4.azl3.aarch64.rpm
ntsysv-1.25-1.azl3.aarch64.rpm
+ocaml-srpm-macros-9-4.azl3.noarch.rpm
openssl-3.3.0-1.azl3.aarch64.rpm
openssl-debuginfo-3.3.0-1.azl3.aarch64.rpm
openssl-devel-3.3.0-1.azl3.aarch64.rpm
diff --git a/toolkit/resources/manifests/package/toolchain_x86_64.txt b/toolkit/resources/manifests/package/toolchain_x86_64.txt
index 8c17d008265..a320824e963 100644
--- a/toolkit/resources/manifests/package/toolchain_x86_64.txt
+++ b/toolkit/resources/manifests/package/toolchain_x86_64.txt
@@ -5,7 +5,7 @@ audit-devel-3.1.2-1.azl3.x86_64.rpm
audit-libs-3.1.2-1.azl3.x86_64.rpm
autoconf-2.72-1.azl3.noarch.rpm
automake-1.16.5-1.azl3.noarch.rpm
-azurelinux-check-macros-3.0-4.azl3.noarch.rpm
+azurelinux-check-macros-3.0-5.azl3.noarch.rpm
azurelinux-repos-3.0-2.azl3.noarch.rpm
azurelinux-repos-debug-3.0-2.azl3.noarch.rpm
azurelinux-repos-debug-preview-3.0-2.azl3.noarch.rpm
@@ -19,7 +19,7 @@ azurelinux-repos-ms-oss-3.0-2.azl3.noarch.rpm
azurelinux-repos-ms-oss-preview-3.0-2.azl3.noarch.rpm
azurelinux-repos-preview-3.0-2.azl3.noarch.rpm
azurelinux-repos-shared-3.0-2.azl3.noarch.rpm
-azurelinux-rpm-macros-3.0-4.azl3.noarch.rpm
+azurelinux-rpm-macros-3.0-5.azl3.noarch.rpm
bash-5.2.15-1.azl3.x86_64.rpm
bash-debuginfo-5.2.15-1.azl3.x86_64.rpm
bash-devel-5.2.15-1.azl3.x86_64.rpm
@@ -282,6 +282,7 @@ npth-1.6-4.azl3.x86_64.rpm
npth-debuginfo-1.6-4.azl3.x86_64.rpm
npth-devel-1.6-4.azl3.x86_64.rpm
ntsysv-1.25-1.azl3.x86_64.rpm
+ocaml-srpm-macros-9-4.azl3.noarch.rpm
openssl-3.3.0-1.azl3.x86_64.rpm
openssl-debuginfo-3.3.0-1.azl3.x86_64.rpm
openssl-devel-3.3.0-1.azl3.x86_64.rpm
diff --git a/toolkit/resources/manifests/package/update_manifests.sh b/toolkit/resources/manifests/package/update_manifests.sh
index fb71033533e..6d0eb3c035c 100755
--- a/toolkit/resources/manifests/package/update_manifests.sh
+++ b/toolkit/resources/manifests/package/update_manifests.sh
@@ -259,6 +259,7 @@ generate_pkggen_core () {
grep "^gtk-doc-" $TmpPkgGen
grep "^autoconf-" $TmpPkgGen
grep "^automake-" $TmpPkgGen
+ grep "^ocaml-srpms-macros-" $TmpPkgGen
grep "^openssl-" $TmpPkgGen
grep "^libcap-" $TmpPkgGen
grep "^debugedit-" $TmpPkgGen
diff --git a/toolkit/scripts/toolchain/build_official_toolchain_rpms.sh b/toolkit/scripts/toolchain/build_official_toolchain_rpms.sh
index 95593e0d660..71bcafea265 100755
--- a/toolkit/scripts/toolchain/build_official_toolchain_rpms.sh
+++ b/toolkit/scripts/toolchain/build_official_toolchain_rpms.sh
@@ -556,6 +556,9 @@ build_rpm_in_chroot_no_install pyproject-rpm-macros
chroot_and_install_rpms pyproject-rpm-macros pyproject-rpm-macros
chroot_and_install_rpms pyproject-rpm-macros pyproject-srpm-macros
+# ocaml and other ocmal packages require ocaml-srpm-macros
+build_rpm_in_chroot_no_install ocaml-srpm-macros
+
build_rpm_in_chroot_no_install python-packaging
chroot_and_install_rpms python-packaging python3-packaging