#bPNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT p0 alt-nodejs18_native.req000075500000000050151500204660011031 0ustar00#!/bin/sh echo 'nodejs(abi18) >= 18.20' tgpg000075500000001651151500204660005435 0ustar00#!/usr/bin/sh for pkg in $* do if [ "$pkg" = "" ] || [ ! -e "$pkg" ]; then echo "no package supplied" 1>&2 exit 1 fi plaintext=`mktemp ${TMPDIR:-/tmp}/tgpg-$$.XXXXXX` detached=`mktemp ${TMPDIR:-/tmp}/tgpg-$$.XXXXXX` # --- Extract detached signature rpm -qp -vv --qf '%{siggpg:armor}' $pkg > $detached # --- Figger the offset of header+payload in the package leadsize=96 o=`expr $leadsize + 8` set `od -j $o -N 8 -t u1 $pkg` il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5` dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9` sigsize=`expr 8 + 16 \* $il + $dl` o=`expr $o + $sigsize + \( 8 - \( $sigsize \% 8 \) \) \% 8` # --- Extract header+payload dd if=$pkg ibs=$o skip=1 2>/dev/null > $plaintext # --- Verify DSA signature using gpg gpg --batch -vv --debug 0xfc02 --verify $detached $plaintext # --- Clean up rm -f $detached $plaintext done alt-nodejs16_native.req000075500000000050151500204660011027 0ustar00#!/bin/sh echo 'nodejs(abi16) >= 16.20' redhat/redhat-hardened-cc1000044400000000231151500204660011412 0ustar00*cc1_options: + %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}} *cpp_options: + %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}} redhat/brp-ldconfig000075500000000641151500204660010307 0ustar00#!/usr/bin/sh -efu # Force creating of DSO symlinks. # If using normal root, avoid changing anything. if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then exit 0 fi # Create an empty config file for ldconfig to shut up a warning config=$(mktemp -p "$RPM_BUILD_ROOT") /sbin/ldconfig -f $(basename "$config") -N -r "$RPM_BUILD_ROOT" rm -f "$config" # TODO: warn if it created new symlinks and guide people. redhat/brp-python-bytecompile000075500000013222151500204660012354 0ustar00#!/usr/bin/bash errors_terminate=$2 # Usage of %_python_bytecompile_extra is not allowed anymore # See: https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_3 # Therefore $1 ($default_python) is not needed and is invoked with "" by default. # $default_python stays in the arguments for backward compatibility and $extra for the following check: extra=$3 if [ 0$extra -eq 1 ]; then echo -e "%_python_bytecompile_extra is discontinued, use %py_byte_compile instead.\nSee: https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation_phase_3" >/dev/stderr exit 1 fi # If using normal root, avoid changing anything. if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then exit 0 fi # Figure out how deep we need to descend. We could pick an insanely high # number and hope it's enough, but somewhere, somebody's sure to run into it. depth=`(find "$RPM_BUILD_ROOT" -type f -name "*.py" -print0 ; echo /) | \ xargs -0 -n 1 dirname | sed 's,[^/],,g' | sort -u | tail -n 1 | wc -c` if [ -z "$depth" -o "$depth" -le "1" ]; then exit 0 fi # This function now implements Python byte-compilation in three different ways: # Python >= 3.4 and < 3.9 uses a new module compileall2 - https://github.com/fedora-python/compileall2 # Python < 3.4 (inc. Python 2) uses compileall module from stdlib with some hacks # When we drop support for Python 2, we'd be able to use all compileall2 features like: # - -s and -p options to manipulate with a path baked into pyc files instead of $real_libdir # - -o 0 -o 1 to produce multiple files in one run - each with a different optimization level - instead of $options # - removed useless $depth - both compileall and compileall2 are limited by sys.getrecursionlimit() # These changes will make this script much simpler # In Python >= 3.9, compileall2 was merged back to standard library (compileall) so we can use it directly again. function python_bytecompile() { local options=$1 local python_binary=$2 local exclude=$3 local python_libdir=$4 local depth=$5 # Not used for Python >= 3.4 local real_libdir=$6 # Not used for Python >= 3.4 python_version=$($python_binary -c "import sys; sys.stdout.write('{0.major}{0.minor}'.format(sys.version_info))") # # Python 3.9 and higher # if [ "$python_version" -ge 39 ]; then [ ! -z $exclude ] && exclude="-x '$exclude'" # -q disables verbose output # -f forces the process to overwrite existing compiled files # -x excludes paths defined by regex # -e excludes symbolic links pointing outside the build root # -x and -e together implements the same functionality as the Filter class below # -s strips $RPM_BUILD_ROOT from the path # -p prepends the leading slash to the path to make it absolute $python_binary -B $options -m compileall -q -f $exclude -s $RPM_BUILD_ROOT -p / -e $RPM_BUILD_ROOT --invalidation-mode=timestamp $python_libdir # # Python 3.4 and higher # elif [ "$python_version" -ge 34 ]; then [ ! -z $exclude ] && exclude="-x '$exclude'" # /usr/lib/rpm/redhat/ contains compileall2 Python module # -q disables verbose output # -f forces the process to overwrite existing compiled files # -x excludes paths defined by regex # -e excludes symbolic links pointing outside the build root # -x and -e together implements the same functionality as the Filter class below # -s strips $RPM_BUILD_ROOT from the path # -p prepends the leading slash to the path to make it absolute PYTHONPATH=/usr/lib/rpm/redhat/ $python_binary -B $options -m compileall2 -q -f $exclude -s $RPM_BUILD_ROOT -p / -e $RPM_BUILD_ROOT $python_libdir else # # Python 3.3 and lower (incl. Python 2) # cat << EOF | $python_binary $options import compileall, sys, os, re python_libdir = "$python_libdir" depth = $depth real_libdir = "$real_libdir" build_root = "$RPM_BUILD_ROOT" exclude = r"$exclude" class Filter: def search(self, path): ret = not os.path.realpath(path).startswith(build_root) if exclude: ret = ret or re.search(exclude, path) return ret sys.exit(not compileall.compile_dir(python_libdir, depth, real_libdir, force=1, rx=Filter(), quiet=1)) EOF fi } # .pyc/.pyo files embed a "magic" value, identifying the ABI version of Python # bytecode that they are for. # # The files below RPM_BUILD_ROOT could be targeting multiple versions of # python (e.g. a single build that emits several subpackages e.g. a # python26-foo subpackage, a python31-foo subpackage etc) # # Support this by assuming that below each /usr/lib/python$VERSION/, all # .pyc/.pyo files are to be compiled for /usr/bin/python$VERSION. # # For example, below /usr/lib/python2.6/, we're targeting /usr/bin/python2.6 # and below /usr/lib/python3.1/, we're targeting /usr/bin/python3.1 # Disable Python hash seed randomization # This should help with byte-compilation reproducibility: https://bugzilla.redhat.com/show_bug.cgi?id=1686078 export PYTHONHASHSEED=0 shopt -s nullglob for python_libdir in `find "$RPM_BUILD_ROOT" -type d|grep -E "/(usr|app)/lib(64)?/python[0-9]\.[0-9]+$"`; do python_binary=$(basename $python_libdir) real_libdir=${python_libdir/$RPM_BUILD_ROOT/} echo "Bytecompiling .py files below $python_libdir using $python_binary" # Generate normal (.pyc) byte-compiled files. python_bytecompile "" "$python_binary" "" "$python_libdir" "$depth" "$real_libdir" if [ $? -ne 0 -a 0$errors_terminate -ne 0 ]; then # One or more of the files had a syntax error exit 1 fi # Generate optimized (.pyo) byte-compiled files. python_bytecompile "-O" "$python_binary" "" "$python_libdir" "$depth" "$real_libdir" if [ $? -ne 0 -a 0$errors_terminate -ne 0 ]; then # One or more of the files had a syntax error exit 1 fi done redhat/kmodtool000075500000022037151500204660007574 0ustar00#!/usr/bin/bash # kmodtool - Helper script for building kernel module RPMs # An original version appeared in Fedora. This version is # generally called only by the %kernel_module_package RPM macro # during the process of building Driver Update Packages (which # are also known as "kmods" in the Fedora community). # # Copyright (c) 2003-2010 Ville Skyttä , # Thorsten Leemhuis # Jon Masters # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the # "Software"), to deal in the Software without restriction, including # without limitation the rights to use, copy, modify, merge, publish, # distribute, sublicense, and/or sell copies of the Software, and to # permit persons to whom the Software is furnished to do so, subject to # the following conditions: # # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # Changelog: # # 2010/07/28 - Add fixes for filelists in line with LF standard # - Remove now defunct "framepointer" kernel variant # - Change version to "rhel6-rh2" as a consequence. # # 2010/01/10 - Simplified for RHEL6. We are working on upstream # moving to a newer format and in any case do not # need to retain support for really old systems. shopt -s extglob myprog="kmodtool" myver="0.10.10_rhel9" knownvariants=@(debug|kdump|zfcpdump) kmod_name= kver= verrel= variant= get_verrel () { verrel=${1:-$(uname -r)} verrel=${verrel/%[.+]$knownvariants/} } print_verrel () { get_verrel "$@" echo "${verrel}" } get_variant () { get_verrel "$@" variant=${1:-$(uname -r)} variant=${variant/#$verrel?(.+)/} variant=${variant:-'""'} } print_variant () { get_variant $@ echo "${variant}" } # Detect flavor separator character. We have to do that due to # a systemd-tailored patch for kernel spec[1][2] introduced in Fedora and then # imported in RHEL 8 that broke all OOT kmod infrastructure for the flavored # kernels. # # [1] https://lists.fedoraproject.org/pipermail/kernel/2013-June/004262.html # [2] https://src.fedoraproject.org/rpms/kernel/c/faf25207dc86666a611c45ae3ffaf385c170bd2a # # $1 - kver # $2 - variant get_variant_char () { variant="$2" [ "$variant" != "default" ] || variant="" get_verrel "$1" variant_char="" [ -n "$variant" ] || return 0 # We expect that the flavored kernel is already installed in the buildroot variant_char="+" [ -e "/usr/src/kernels/${verrel}+${variant}" ] && return 0 variant_char="." } print_variant_char () { get_variant_char "$@" echo "${variant_char}" } print_kernel_source () { get_variant_char "$@" echo "/usr/src/kernels/${verrel}${variant_char}${variant}" } get_filelist() { local IFS=$'\n' filelist=($(cat)) if [ ${#filelist[@]} -gt 0 ]; then for ((n = 0; n < ${#filelist[@]}; n++)); do line="${filelist[n]}" line=$(echo "$line" \ | sed -e "s/%verrel/$verrel/g" \ | sed -e "s/%variant/$variant/g" \ | sed -e "s/%dashvariant/$dashvariant/g" \ | sed -e "s/%dotvariant/$dotvariant/g" \ | sed -e "s/\+%1/$dotvariant/g" \ | sed -e "s/\.%1/$dotvariant/g" \ | sed -e "s/\-%1/$dotvariant/g" \ | sed -e "s/%2/$verrel/g") echo "$line" done else echo "%defattr(644,root,root,755)" echo "/lib/modules/${verrel}${dotvariant}" fi } get_rpmtemplate () { local variant="${1}" get_variant_char "${verrel}" "${variant}" local dashvariant="${variant:+-${variant}}" local dotvariant="${variant:+${variant_char}${variant}}" echo "%package -n kmod-${kmod_name}${dashvariant}" if [ -z "$kmod_provides_summary" ]; then echo "Summary: ${kmod_name} kernel module(s)" fi if [ -z "$kmod_provides_group" ]; then echo "Group: System Environment/Kernel" fi if [ ! -z "$kmod_version" ]; then echo "Version: %{kmod_version}" fi if [ ! -z "$kmod_release" ]; then echo "Release: %{kmod_release}" fi cat <= ${verrel}${dotvariant} Provides: kernel${dashvariant}-modules >= ${verrel} Provides: ${kmod_name}-kmod = %{?epoch:%{epoch}:}%{version}-%{release} Requires(post): /usr/sbin/depmod Requires(postun): /usr/sbin/depmod Requires(post): /usr/sbin/weak-modules Requires(postun): /usr/sbin/weak-modules EOF if [ "yes" != "$nobuildreqs" ] then cat < /dev/null || : fi modules=( \$(find /lib/modules/${verrel}${dotvariant}/extra/${kmod_name} | grep -E '\.ko(\.gz|\.bz2|\.xz|\.zst)?$') ) if [ -x "/usr/sbin/weak-modules" ]; then printf '%s\n' "\${modules[@]}" \ | /usr/sbin/weak-modules --add-modules fi EOF cat < /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules EOF cat < /dev/null || : fi modules=( \$(cat /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules) ) rm /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules if [ -x "/usr/sbin/weak-modules" ]; then printf '%s\n' "\${modules[@]}" \ | /usr/sbin/weak-modules --remove-modules fi EOF echo "%files -n kmod-${kmod_name}${dashvariant}" if [ "" == "$override_filelist" ]; then echo "%defattr(644,root,root,755)" echo "/lib/modules/${verrel}${dotvariant}" else cat "$override_filelist" | get_filelist fi } print_rpmtemplate () { kmod_name="${1}" shift kver="${1}" get_verrel "${1}" shift if [ -z "${kmod_name}" ] ; then echo "Please provide the kmodule-name as first parameter." >&2 exit 2 elif [ -z "${kver}" ] ; then echo "Please provide the kver as second parameter." >&2 exit 2 elif [ -z "${verrel}" ] ; then echo "Couldn't find out the verrel." >&2 exit 2 fi for variant in "$@" ; do if [ "default" == "$variant" ]; then get_rpmtemplate "" else get_rpmtemplate "${variant}" fi done } usage () { cat <