summaryrefslogtreecommitdiffstats
path: root/redhat
diff options
context:
space:
mode:
authorFrançois Andriot <albator78@libertysurf.fr>2023-11-10 18:06:02 +0100
committerFrançois Andriot <albator78@libertysurf.fr>2023-11-10 18:06:15 +0100
commit904d1e092483ee658ea62dcfab44d9962843f227 (patch)
tree9a45ae4bbb4fb5e5bf70a8bb55184c80752c789d /redhat
parent3da26236a5f931eae506b2aa7109549f041c8e22 (diff)
downloadtde-packaging-904d1e092483ee658ea62dcfab44d9962843f227.tar.gz
tde-packaging-904d1e092483ee658ea62dcfab44d9962843f227.zip
RPM: add support for Fedora 39
Signed-off-by: François Andriot <albator78@libertysurf.fr>
Diffstat (limited to 'redhat')
-rw-r--r--redhat/Makefile4
-rw-r--r--redhat/applications/multimedia/k3b/k3b.spec3
-rw-r--r--redhat/applications/settings/tde-guidance/tde-guidance.spec2
-rwxr-xr-xredhat/build/update_repository.sh4
-rw-r--r--redhat/core/tdebase/pamd.kcheckpass-trinity.fc395
-rw-r--r--redhat/core/tdebase/pamd.kdm-trinity-np.fc3916
-rw-r--r--redhat/core/tdebase/pamd.kdm-trinity.fc3923
-rw-r--r--redhat/core/tdebase/pamd.kscreensaver-trinity.fc395
-rw-r--r--redhat/core/tdebase/tdm.fc39.te11
-rw-r--r--redhat/core/tdeutils/tdeutils.spec22
-rw-r--r--redhat/dependencies/pytqt/pytqt.spec2
-rw-r--r--redhat/dependencies/sip4-tqt/sip4-tqt.spec2
-rw-r--r--redhat/dependencies/tqt3/tqt3.spec4
-rw-r--r--redhat/docker/f39/Dockerfile.x86_6441
-rw-r--r--redhat/docker/f39/packages241
-rw-r--r--redhat/docker/f39/rpmbuild.repo11
-rw-r--r--redhat/docker/f39/rpmmacros17
-rw-r--r--redhat/libraries/pytde/pytde.spec2
-rw-r--r--redhat/libraries/pytdeextensions/pytdeextensions.spec2
19 files changed, 409 insertions, 8 deletions
diff --git a/redhat/Makefile b/redhat/Makefile
index 5b18b9d8c..e67da2c2f 100644
--- a/redhat/Makefile
+++ b/redhat/Makefile
@@ -149,7 +149,7 @@ ifneq (,$(filter $(DIST), .mga6 .mga7 .mga8 .mga9 .oss151 .oss152 .oss153 .oss15
endif
htdig:
-ifneq (,$(filter $(DIST), .el7 .el8 .el9 .fc38 .mga6 .mga7 .mga8 .mga9 ))
+ifneq (,$(filter $(DIST), .el7 .el8 .el9 .fc38 .fc39 .mga6 .mga7 .mga8 .mga9 ))
$(call buildpkg,extras/htdig)
endif
@@ -186,7 +186,7 @@ ifneq (,$(filter $(DIST),.oss150 .oss151))
endif
wv2:
-ifneq (,$(filter $(DIST), .el5 .el6 .el7 .el8 .el9 .fc30 .fc31 .fc32 .fc33 .fc34 .fc35 .fc36 .fc37 .fc38))
+ifneq (,$(filter $(DIST), .el5 .el6 .el7 .el8 .el9 .fc30 .fc31 .fc32 .fc33 .fc34 .fc35 .fc36 .fc37 .fc38 .fc39))
$(call buildpkg,3rdparty/wv2)
endif
diff --git a/redhat/applications/multimedia/k3b/k3b.spec b/redhat/applications/multimedia/k3b/k3b.spec
index 4bbe7b8cd..e73e94ce9 100644
--- a/redhat/applications/multimedia/k3b/k3b.spec
+++ b/redhat/applications/multimedia/k3b/k3b.spec
@@ -227,7 +227,8 @@ BuildRequires: ffmpeg-devel
%endif
# MUSEPACK
-%if 0%{?fedora} != 38
+%if 0%{?fedora} == 0 || 0%{?fedora} <= 37
+# Looking for mpc_decoder_setup in mpcdec - not found
%define with_musepack 1
BuildRequires: libmpcdec-devel
%endif
diff --git a/redhat/applications/settings/tde-guidance/tde-guidance.spec b/redhat/applications/settings/tde-guidance/tde-guidance.spec
index c9962b718..d60a7a017 100644
--- a/redhat/applications/settings/tde-guidance/tde-guidance.spec
+++ b/redhat/applications/settings/tde-guidance/tde-guidance.spec
@@ -144,7 +144,9 @@ BuildRequires: xscreensaver-gl
%endif
# PYTHON support
+%if "%{python}" == ""
%global python python3
+%endif
%global __python %__python3
%global python_sitearch %{python3_sitearch}
%{!?python_sitearch:%global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
diff --git a/redhat/build/update_repository.sh b/redhat/build/update_repository.sh
index 31248abd2..a7a789b1c 100755
--- a/redhat/build/update_repository.sh
+++ b/redhat/build/update_repository.sh
@@ -20,8 +20,8 @@ if [ -x /usr/sbin/urpmi ]; then
elif [ -x /usr/bin/dnf ]; then
REPOUPDATE='(cd ${RPMDIR}; createrepo --workers=${WORKERS} ${ARCH} & createrepo --workers=${WORKERS} noarch & wait; sudo dnf --repo="rpmbuild*" clean expire-cache)'
elif [ -x /usr/bin/zypper ]; then
- #REPOUPDATE='(cd ${RPMDIR}; createrepo --workers=${WORKERS} ${ARCH} & createrepo --workers=${WORKERS} noarch & wait; sudo zypper refresh rpmbuild.${ARCH} rpmbuild.noarch)'
- REPOUPDATE='(rsync -av ${RPMDIR}/ /tmp/rpm${dist}/ && cd /tmp/rpm${dist}; umask 0000; createrepo --workers=${WORKERS} ${ARCH} & createrepo --workers=${WORKERS} noarch & wait; rsync -av /tmp/rpm${dist}/ ${RPMDIR}/; sudo zypper refresh rpmbuild.${ARCH} rpmbuild.noarch)'
+ REPOUPDATE='(cd ${RPMDIR}; createrepo --workers=${WORKERS} ${ARCH} & createrepo --workers=${WORKERS} noarch & wait; sudo zypper refresh rpmbuild.${ARCH} rpmbuild.noarch)'
+ #REPOUPDATE='(rsync -av ${RPMDIR}/ /tmp/rpm${dist}/ && cd /tmp/rpm${dist}; umask 0000; createrepo --workers=${WORKERS} ${ARCH} & createrepo --workers=${WORKERS} noarch & wait; rsync -av /tmp/rpm${dist}/ ${RPMDIR}/; sudo zypper refresh rpmbuild.${ARCH} rpmbuild.noarch)'
elif [ -x /usr/bin/yum ]; then
if [ "$(rpm -E %dist)" = ".el5" ]; then
REPOUPDATE='(cd ${RPMDIR}; createrepo ${ARCH} & createrepo noarch & wait; sudo yum clean metadata --disablerepo="*" --enablerepo="rpmbuild*")'
diff --git a/redhat/core/tdebase/pamd.kcheckpass-trinity.fc39 b/redhat/core/tdebase/pamd.kcheckpass-trinity.fc39
new file mode 100644
index 000000000..0a37e6e13
--- /dev/null
+++ b/redhat/core/tdebase/pamd.kcheckpass-trinity.fc39
@@ -0,0 +1,5 @@
+#%PAM-1.0
+auth include system-auth
+account include system-auth
+password include system-auth
+session include system-auth
diff --git a/redhat/core/tdebase/pamd.kdm-trinity-np.fc39 b/redhat/core/tdebase/pamd.kdm-trinity-np.fc39
new file mode 100644
index 000000000..0616e66f6
--- /dev/null
+++ b/redhat/core/tdebase/pamd.kdm-trinity-np.fc39
@@ -0,0 +1,16 @@
+ #%PAM-1.0
+auth required pam_env.so
+auth required pam_permit.so
+auth include postlogin
+account required pam_nologin.so
+account include system-auth
+password include system-auth
+session required pam_selinux.so close
+session required pam_loginuid.so
+session optional pam_console.so
+-session optional pam_ck_connector.so
+session required pam_selinux.so open
+session optional pam_keyinit.so force revoke
+session required pam_namespace.so
+session include system-auth
+session include postlogin
diff --git a/redhat/core/tdebase/pamd.kdm-trinity.fc39 b/redhat/core/tdebase/pamd.kdm-trinity.fc39
new file mode 100644
index 000000000..4e760760f
--- /dev/null
+++ b/redhat/core/tdebase/pamd.kdm-trinity.fc39
@@ -0,0 +1,23 @@
+#%PAM-1.0
+auth [success=done ignore=ignore default=bad] pam_selinux_permit.so
+auth required pam_env.so
+auth substack system-auth
+-auth optional pam_gnome_keyring.so
+-auth optional pam_kwallet.so
+-auth optional pam_kwallet5.so
+auth include postlogin
+account required pam_nologin.so
+account include system-auth
+password include system-auth
+session required pam_selinux.so close
+session required pam_loginuid.so
+session optional pam_console.so
+-session optional pam_ck_connector.so
+session required pam_selinux.so open
+session optional pam_keyinit.so force revoke
+session required pam_namespace.so
+session include system-auth
+-session optional pam_gnome_keyring.so auto_start
+-session optional pam_kwallet.so
+-session optional pam_kwallet5.so
+session include postlogin
diff --git a/redhat/core/tdebase/pamd.kscreensaver-trinity.fc39 b/redhat/core/tdebase/pamd.kscreensaver-trinity.fc39
new file mode 100644
index 000000000..0a37e6e13
--- /dev/null
+++ b/redhat/core/tdebase/pamd.kscreensaver-trinity.fc39
@@ -0,0 +1,5 @@
+#%PAM-1.0
+auth include system-auth
+account include system-auth
+password include system-auth
+session include system-auth
diff --git a/redhat/core/tdebase/tdm.fc39.te b/redhat/core/tdebase/tdm.fc39.te
new file mode 100644
index 000000000..afe6de52a
--- /dev/null
+++ b/redhat/core/tdebase/tdm.fc39.te
@@ -0,0 +1,11 @@
+
+module tdm 1.0;
+
+require {
+ type fprintd_t;
+ type init_t;
+ class dbus send_msg;
+}
+
+#============= fprintd_t ==============
+allow fprintd_t init_t:dbus send_msg;
diff --git a/redhat/core/tdeutils/tdeutils.spec b/redhat/core/tdeutils/tdeutils.spec
index 17749989e..edd8e4e43 100644
--- a/redhat/core/tdeutils/tdeutils.spec
+++ b/redhat/core/tdeutils/tdeutils.spec
@@ -85,7 +85,9 @@ BuildRequires: net-snmp-devel
BuildRequires: gmp-devel
# PYTHON support
+%if "%{python}" == ""
%global python python3
+%endif
%global __python %__python3
%{!?python_sitearch:%global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
BuildRequires: %{python}
@@ -169,6 +171,7 @@ BuildRequires: openssl-devel
%define dont_relink 1
%endif
+%define build_superkaramba 1
%define build_tdefilereplace 1
Requires: trinity-ark = %{?epoch:%{epoch}:}%{version}-%{release}
@@ -189,7 +192,9 @@ Requires: trinity-kregexpeditor = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: trinity-ksim = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: trinity-ktimer = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: trinity-tdewalletmanager = %{?epoch:%{epoch}:}%{version}-%{release}
+%if 0%{?build_superkaramba}
Requires: trinity-superkaramba = %{?epoch:%{epoch}:}%{version}-%{release}
+%endif
%if 0%{?build_tdefilereplace}
Requires: trinity-tdefilereplace = %{?epoch:%{epoch}:}%{version}-%{release}
%endif
@@ -754,6 +759,8 @@ keeps a master password to all wallets.
##########
+%if 0%{?build_superkaramba}
+
%package -n trinity-superkaramba
Summary: A program based on karamba improving the eyecandy of TDE
Group: Applications/Utilities
@@ -783,6 +790,8 @@ Here are just some examples of the things that can be done:
%{tde_tdedocdir}/HTML/en/superkaramba/
%{tde_mandir}/man1/superkaramba.1*
+%endif
+
##########
%if 0%{?build_tdefilereplace}
@@ -868,7 +877,7 @@ This package contains the development files for tdeutils.
%prep
%setup -q -n %{name}-%{version}%{?preversion:~%{preversion}}
-%if 0%{?rhel} == 5
+%if 0%{?rhel} == 5 && 0%{?build_superkaramba}
# Reverts some older Python stuff
%__sed -i "superkaramba/src/"*".cpp" \
-e "s|PyBytes_CheckExact|PyString_CheckExact|g" \
@@ -912,6 +921,11 @@ fi
-DPKGCONFIG_INSTALL_DIR="%{tde_libdir}/pkgconfig" \
-DSHARE_INSTALL_PREFIX="%{tde_datadir}" \
\
+%if 0%{?fedora} == 39
+ -DPYTHON_LIBRARY="%{_libdir}/libpython3.11.so.1.0" \
+ -DPYTHON_INCLUDE_DIR="%{_includedir}/python3.11" \
+%endif
+ \
-DWITH_DPMS=ON \
%{?with_xscreensaver:-DWITH_XSCREENSAVER=ON} \
-DWITH_ASUS=ON \
@@ -926,6 +940,8 @@ fi
-DWITH_TDENEWSTUFF=ON \
-DBUILD_ALL=ON \
%{?!build_klaptopdaemon:-DBUILD_KLAPTOPDAEMON=OFF} \
+ %{?!build_superkaramba:-DBUILD_SUPERKARAMBA=OFF} \
+ %{?!build_tdefilereplace:-DBUILD_TDEFILEREPLACE=OFF} \
..
%__make %{?_smp_mflags} || %__make
@@ -969,14 +985,18 @@ export PATH="%{tde_bindir}:${PATH}"
# Fix desktop shortcut location
if [ -d "%{?buildroot}%{tde_datadir}/applnk" ]; then
%__mkdir_p "%{?buildroot}%{tde_tdeappdir}"
+%if 0%{?build_superkaramba}
%__mv "%{?buildroot}%{tde_datadir}/applnk/Utilities/superkaramba.desktop" "%{?buildroot}%{tde_tdeappdir}/superkaramba.desktop"
+%endif
%__rm -rf "%{?buildroot}%{tde_datadir}/applnk"
fi
# Updates applications categories for openSUSE
%if 0%{?suse_version}
%suse_update_desktop_file KEdit Utility TextEditor
+%if 0%{?build_superkaramba}
%suse_update_desktop_file superkaramba Utility DesktopUtility
+%endif
%suse_update_desktop_file KCharSelect Utility Accessibility
%suse_update_desktop_file khexedit Utility Editor
%suse_update_desktop_file Kjots Utility TimeUtility
diff --git a/redhat/dependencies/pytqt/pytqt.spec b/redhat/dependencies/pytqt/pytqt.spec
index b96c52efb..6183f40df 100644
--- a/redhat/dependencies/pytqt/pytqt.spec
+++ b/redhat/dependencies/pytqt/pytqt.spec
@@ -73,7 +73,9 @@ BuildRequires: libtqscintilla-devel >= %{?epoch:%{epoch}:}1.7.1
BuildRequires: gcc-c++
# PYTHON support
+%if "%{python}" == ""
%global python python3
+%endif
%global __python %__python3
%global python_sitearch %{python3_sitearch}
%{!?python_sitearch:%global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
diff --git a/redhat/dependencies/sip4-tqt/sip4-tqt.spec b/redhat/dependencies/sip4-tqt/sip4-tqt.spec
index ed63e325e..7dae151e8 100644
--- a/redhat/dependencies/sip4-tqt/sip4-tqt.spec
+++ b/redhat/dependencies/sip4-tqt/sip4-tqt.spec
@@ -77,7 +77,9 @@ BuildRequires: bison
BuildRequires: flex
# PYTHON support
+%if "%{python}" == ""
%global python python3
+%endif
%global __python %__python3
%global python_sitearch %{python3_sitearch}
%{!?python_sitearch:%global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
diff --git a/redhat/dependencies/tqt3/tqt3.spec b/redhat/dependencies/tqt3/tqt3.spec
index c73abd7fd..5feba7a23 100644
--- a/redhat/dependencies/tqt3/tqt3.spec
+++ b/redhat/dependencies/tqt3/tqt3.spec
@@ -328,7 +328,6 @@ Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
Requires: coreutils
Requires: fontconfig >= 2.0
-Requires: /etc/ld.so.conf.d
%description -n %{libtqt3}-mt
This is the Trolltech TQt library, version 3. It's necessary for
@@ -1291,11 +1290,12 @@ echo "sle_version = %{?sle_version}"
%endif
# fix variables in 'qmake.conf'
+distrib_cflags="$(rpm -E %optflags|sed -e "s/_FORTIFY_SOURCE=3/_FORTIFY_SOURCE=2/")"
%__sed -i mkspecs/*/qmake.conf \
-e "s|^QMAKE_INCDIR_TQT.*|QMAKE_INCDIR_TQT = %{_includedir}/tqt3|" \
-e "s|\$(QTDIR)|/usr|g" \
-e "s|-lqt|-ltqt|g" \
- -e "s|^QMAKE_CFLAGS =.*|QMAKE_CFLAGS = %{?optflags} -pipe -fvisibility=hidden -fvisibility-inlines-hidden|" \
+ -e "s|^QMAKE_CFLAGS =.*|QMAKE_CFLAGS = ${distrib_cflags} -pipe -fvisibility=hidden -fvisibility-inlines-hidden|" \
-e "s|^QMAKE_INCDIR =.*|QMAKE_INCDIR = %{_includedir}|" \
-e "s|^QMAKE_LIBDIR =.*|QMAKE_LIBDIR = %{_libdir}|" \
-e "s|^QMAKE_RPATH = .*|QMAKE_RPATH =|" \
diff --git a/redhat/docker/f39/Dockerfile.x86_64 b/redhat/docker/f39/Dockerfile.x86_64
new file mode 100644
index 000000000..49ea4c0c0
--- /dev/null
+++ b/redhat/docker/f39/Dockerfile.x86_64
@@ -0,0 +1,41 @@
+FROM fedora:39
+
+ARG TDE_VERSION=14.1.1
+ARG ARCH=x86_64
+
+# Fix DNF database corruption
+# Add RPMFUSION repository
+# Install Trinity build dependencies
+COPY packages /packages
+RUN echo "proxy=http://proxy:3128" >>"/etc/dnf.conf" \
+ && rm -fv /etc/yum.repos.d/*{rawhide,testing}* \
+ && sed -i /etc/yum.repos.d/fedora{,-updates}.repo -e "1,12s|enabled=0|enabled=1|" -e "s|\$releasever|39|g" \
+ && dnf -y install dnf-plugin-ovl findutils \
+ && dnf -y --enableplugin=ovl install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-39.noarch.rpm \
+ && dnf -y --enableplugin=ovl update \
+ && dnf -y --enableplugin=ovl install --skip-broken $(</packages)
+
+# Add YUM repository for locally built packages
+COPY rpmbuild.repo /etc/yum.repos.d/rpmbuild.repo
+RUN sed -i "/etc/yum.repos.d/rpmbuild.repo" -e "s|\${ARCH}|${ARCH}|g" -e "s|\${TDE_VERSION}|${TDE_VERSION}|g"
+
+# Fix utempter detection
+RUN chmod a+r /usr/libexec/utempter/utempter \
+ && chmod 777 /tmp
+
+# Add non-root user to build packages
+RUN useradd -m -s /bin/bash -u 1000 trinity \
+ && echo "trinity ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers \
+ && echo "export QA_RPATHS=\$(( 0x0001|0x0002 ))" >>/home/trinity/.bashrc
+
+USER trinity
+COPY rpmmacros /home/trinity/.rpmmacros
+
+RUN rpm -i https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/35/Everything/source/tree/Packages/w/wireless-tools-29-28.fc35.src.rpm \
+ && rpmbuild -ba ${HOME}/rpmbuild/SPECS/wireless-tools.spec \
+ && sudo rpm -Uvh ${HOME}/rpmbuild/RPMS/*/wireless-tools{,-devel}-29*
+
+RUN rpm -i https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/36/Everything/source/tree/Packages/l/libnjb-2.2.7-24.fc36.src.rpm \
+ && sed -i ${HOME}/rpmbuild/SPECS/libnjb.spec -e "s|libusb-devel|libusb1-devel|" \
+ && rpmbuild -ba ${HOME}/rpmbuild/SPECS/libnjb.spec \
+ && sudo rpm -Uvh ${HOME}/rpmbuild/RPMS/*/libnjb{,-devel}-2*
diff --git a/redhat/docker/f39/packages b/redhat/docker/f39/packages
new file mode 100644
index 000000000..8f51317f3
--- /dev/null
+++ b/redhat/docker/f39/packages
@@ -0,0 +1,241 @@
+alsa-lib-devel
+aspell
+aspell-devel
+audiofile-devel
+autotrace
+avahi-devel
+bdftopcf
+bind-devel
+binutils-devel
+bison
+boost-devel
+boost-python3-devel
+byacc
+bzip2-devel
+ccache
+cdparanoia
+cdparanoia-devel
+chmlib-devel
+chrpath
+clamav
+clamav-devel
+clucene-core-devel
+cmake
+cpp
+cppunit-devel
+crda
+createrepo_c
+cryptsetup-devel
+cups-devel
+dbus-glib-devel
+djvulibre
+djvulibre-devel
+dnf-plugin-ovl
+docbook2X
+doxygen
+dssi-devel
+esound-devel
+exempi-devel
+exiv2-devel
+fdupes
+fedora-rpm-macros
+ffmpeg-devel
+fftw-devel
+file-devel
+flac-devel
+flex-static
+fontpackages-devel
+fribidi-devel
+gcc
+gcc-c++
+geoip-devel
+gettext-devel
+giflib-devel
+glib-devel
+gmime-devel
+gmp-devel
+gnokii-devel
+gperf
+gpgme-devel
+gphoto2-devel
+GraphicsMagick-devel
+graphviz
+gsl-devel
+gstreamer1-devel
+gstreamer1-plugins-base-devel
+gtk2-devel
+gtk3-devel
+gtk+-devel
+gtk-doc
+guile-devel
+harfbuzz-devel
+heimdal-devel
+hspell-devel
+htdig
+html2ps
+iceauth
+icu
+ImageMagick-devel
+imake
+imlib2-devel
+intltool
+jack-audio-connection-kit-devel
+jasper-devel
+java-1.8.0-openjdk-devel
+java-devel
+java-openjdk
+lame-devel
+lcms-devel
+less
+libacl-devel
+libblkid-devel
+libcap-devel
+libcdio-devel
+libcdio-paranoia-devel
+libconfig-devel
+libcurl-devel
+libdb-cxx-devel
+libdb-devel
+libdvdread-devel
+libfontenc-devel
+libgadu-devel
+libgpod-devel
+libgsf-devel
+libical-devel
+libidn-devel
+libifp-devel
+liblo-devel
+liblrdf-devel
+libmad-devel
+libmng-devel
+libmp4v2-devel
+libmpcdec-devel
+libmtp-devel
+libmusicbrainz5-devel
+libnjb-devel
+libnsl2-devel
+libofx-devel
+libogg-devel
+libotr-devel
+libpaper-devel
+libpqxx-devel
+libqalculate-devel
+libraw1394-devel
+librsvg2
+librsvg2-tools
+libsamplerate-devel
+libsmbclient-devel
+libsndfile-devel
+libssh-devel
+libssh2-devel
+libtheora-devel
+libtiff-devel
+libtirpc-devel
+libtool
+libtool-ltdl-devel
+libudev-devel
+libudisks2-devel
+libusb-compat-0.1-devel
+libusb1-devel
+libutempter-devel
+libuuid-devel
+libv4l-devel
+libvisual-devel
+libvncserver-devel
+libvorbis-devel
+libwmf-devel
+libwpd-devel
+libXaw-devel
+libXcomposite-devel
+libXdamage-devel
+libXdmcp-devel
+libxkbfile-devel
+libXScrnSaver-devel
+libxslt-devel
+libXtst-devel
+libXv-devel
+libXxf86dga-devel
+libXxf86vm-devel
+libyaz-devel
+libzrtpcpp-devel
+lirc-devel
+lm_sensors-devel
+meanwhile-devel
+mesa-libGL-devel
+mftrace
+mysql-devel
+nas-devel
+neon-devel
+netpbm-progs
+NetworkManager-libnm-devel
+net-snmp-devel
+net-tools
+nspr-devel
+ocaml
+ocaml(compiler)
+ocaml-facile-devel
+OpenEXR-devel
+openldap-devel
+opensc
+openslp-devel
+opensp-devel
+ortp-devel
+pam-devel
+pciutils-devel
+pcre-devel
+pcsc-lite-devel
+pcsc-perl
+perl
+perl-devel
+perl(ExtUtils::MakeMaker)
+perl(PAR::Packer)
+perl(XML::Parser)
+pilot-link-devel
+pkcs11-helper-devel
+pkgconfig(pygtk-2.0)
+polkit-devel
+poppler-devel
+postgresql
+postgresql-private-devel
+postgresql-server-devel
+ppp
+pulseaudio-libs-devel
+python3.11
+python3.11-devel
+qt4-devel
+recode
+redhat-rpm-config
+rpcgen
+rpm-build
+ruby
+ruby-devel
+sane-backends-devel
+scons
+SDL-devel
+selinux-policy-devel
+speex-devel
+sqlite-devel
+subversion-devel
+sudo
+swig
+sword-devel
+t1lib-devel
+t1utils
+taglib-devel
+texinfo
+texlive-newunicodechar
+torsocks
+transfig
+udisks-devel
+unixODBC-devel
+usbutils
+valgrind
+xbase-devel
+xine-lib-devel
+xmedcon
+xmedcon-devel
+xmlto
+xorg-x11-font-utils
+xscreensaver
+xscreensaver-extras
+xz-devel
diff --git a/redhat/docker/f39/rpmbuild.repo b/redhat/docker/f39/rpmbuild.repo
new file mode 100644
index 000000000..750290651
--- /dev/null
+++ b/redhat/docker/f39/rpmbuild.repo
@@ -0,0 +1,11 @@
+[rpmbuild.${ARCH}]
+name=rpmbuild.${ARCH}
+baseurl=file:///home/trinity/rpmbuild/RPMS.tde-${TDE_VERSION}/${ARCH}
+enabled=1
+gpgcheck=0
+
+[rpmbuild.noarch]
+name=rpmbuild.noarch
+baseurl=file:///home/trinity/rpmbuild/RPMS.tde-${TDE_VERSION}/noarch
+enabled=1
+gpgcheck=0
diff --git a/redhat/docker/f39/rpmmacros b/redhat/docker/f39/rpmmacros
new file mode 100644
index 000000000..79cc08916
--- /dev/null
+++ b/redhat/docker/f39/rpmmacros
@@ -0,0 +1,17 @@
+%dist .fc39
+%_smp_mflags -j8
+%jobs 8
+%__brp_remove_la_files %nil
+%__cmake_builddir %nil
+%__cmake_in_source_build 1
+%_debugsource_packages %nil
+%_debugsource_template %nil
+%_fortify_level 2
+%source_date_epoch_from_changelog 0
+
+# Use python3.11 instead of default python3.12
+%python python3.11
+%python3 python3.11
+%__python3 /usr/bin/python3.11
+%__python_requires %nil
+%__pythondist_requires %nil
diff --git a/redhat/libraries/pytde/pytde.spec b/redhat/libraries/pytde/pytde.spec
index 9f59833f5..1b605fa00 100644
--- a/redhat/libraries/pytde/pytde.spec
+++ b/redhat/libraries/pytde/pytde.spec
@@ -63,7 +63,9 @@ BuildRequires: autoconf automake libtool m4
BuildRequires: gcc-c++
# PYTHON support
+%if "%{python}" == ""
%global python python3
+%endif
%global __python %__python3
%global python_sitearch %{python3_sitearch}
%{!?python_sitearch:%global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
diff --git a/redhat/libraries/pytdeextensions/pytdeextensions.spec b/redhat/libraries/pytdeextensions/pytdeextensions.spec
index 7e2f3663c..a7b14cb0d 100644
--- a/redhat/libraries/pytdeextensions/pytdeextensions.spec
+++ b/redhat/libraries/pytdeextensions/pytdeextensions.spec
@@ -75,7 +75,9 @@ BuildRequires: sip4-tqt-devel >= 4.10.5
Requires: sip4-tqt >= 4.10.5
# PYTHON support
+%if "%{python}" == ""
%global python python3
+%endif
%global __python %__python3
%global python_sitearch %{python3_sitearch}
%{!?python_sitearch:%global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}