5 Commits

Author SHA1 Message Date
ab1c43634a - Move lib dir into top dir & remove usr,
- Add www/cgi-bin dir,
- Add urpmi-setup-dump.cgi and package it as example,
- URPMI-Setup:
    - Fix usage message.
2026-04-20 16:22:25 +02:00
f0ea953c63 - Fix Complete ReleaseNotes file. 2026-04-19 12:10:14 +02:00
d38a486b6e - Mouve lib & sbin out of usr,
- Remove usr dir,
- Add urpmi-setup-dump.cgi.
2026-04-16 19:10:39 +02:00
64dd7a911e - Move sbin dir into usr,
- Fix usage message in urpmi-setup.
2026-04-16 14:16:22 +02:00
a5241043c0 - Rx3 Profile:
- Add global & opt dir in global vars,
    - Add XDG_DATA_DIRS, HISTSIZE, HISTFILESIZE & _JAVA_OPTIONS variables,
- Base library:
    - Add DUMP flag to cmd_exec() & sh_exec(),
    - Add "-o errexit -o pipefail -o nounset -O extglob" for bash call in sh_exec(),
    - Prefix program name in cmd_exec() & sh_exec() verbose log,
- ISL:
    - Rename -d/--Dump option to -H/--html-dump,
    - Add RX3_LIB_DIR env variable support,
    - Fix variable quoting bug,
- URPMI-Setup:
    - Add Dump option by using the new DUMP flag,
    - Add RX3_LIB_DIR env variable support,
    - Fix a bug in media naming loop.
2026-04-10 17:40:14 +02:00
7 changed files with 217 additions and 70 deletions

View File

@@ -1,3 +1,37 @@
------------------------------------------------------------------------------------------------------------------------------------
Rx3-Base V 1.1.2 - A. GIBERT - 2026/04/20
------------------------------------------------------------------------------------------------------------------------------------
- Move lib dir into top dir & remove usr,
- Add www/cgi-bin dir,
- Add urpmi-setup-dump.cgi and package it as example,
- URPMI-Setup:
- Fix usage message.
------------------------------------------------------------------------------------------------------------------------------------
Rx3-Base V 1.1.1 - A. GIBERT - 2026/04/10
------------------------------------------------------------------------------------------------------------------------------------
- Rx3 Profile:
- Add global & opt dir in global vars,
- Add XDG_DATA_DIRS, HISTSIZE, HISTFILESIZE & _JAVA_OPTIONS variables,
- Base library:
- Add DUMP flag to cmd_exec() & sh_exec(),
- Add "-o errexit -o pipefail -o nounset -O extglob" for bash call in sh_exec(),
- Prefix program name in cmd_exec() & sh_exec() verbose log,
- ISL:
- Rename -d/--Dump option to -H/--html-dump,
- Add RX3_LIB_DIR env variable support,
- Fix variable quoting bug,
- URPMI-Setup:
- Add Dump option by using the new DUMP flag,
- Add RX3_LIB_DIR env variable support,
- Fix a bug in media naming loop.
------------------------------------------------------------------------------------------------------------------------------------
Rx3-Base V 1.1.0 - A. GIBERT - 2026/04/09
------------------------------------------------------------------------------------------------------------------------------------

View File

@@ -25,7 +25,7 @@
%define name rx3-base
%define version 1.1.0
%define version 1.1.2
%define release %mkrel 1rx3
@@ -99,7 +99,7 @@ cp etc/bash_completion.d/* %{buildroot}%{_sysconfdir}/bash_completi
# Libs
%{__mkdir_p} %{buildroot}%{_prefix}/lib/rx3
cp usr/lib/rx3/*.bash %{buildroot}%{_prefix}/lib/rx3
cp lib/rx3/*.bash %{buildroot}%{_prefix}/lib/rx3
# Bin
%{__mkdir_p} %{buildroot}%{_sbindir}
@@ -114,7 +114,7 @@ cp sbin/* %{buildroot}%{_sbindir}
#-----------------------------------------------------------------------------------------------------------------------------------
%files
%doc ReadMe.txt ReleaseNotes.txt ToDo.txt
%doc ReadMe.txt ReleaseNotes.txt ToDo.txt www/cgi-bin/urpmi-setup-dump.cgi
%license COPYING COPYING.LESSER GNU_GPL-3.0.txt GNU_LGPL-3.0.txt GNU_FDL-1.3.txt
%defattr(644,root,root)
%{_sysconfdir}/profile.d/*
@@ -131,7 +131,15 @@ cp sbin/* %{buildroot}%{_sbindir}
#-----------------------------------------------------------------------------------------------------------------------------------
%changelog
* Tue Apr 7 2026 Arnaud G. GIBERT <arnaud@rx3.net> - 1.1.0-1rx3.mga9
* Mon Apr 20 2026 Arnaud G. GIBERT <arnaud@rx3.net> - 1.1.2-1rx3.mga9
- Update ro 1.1.2,
- Move lib source dir
- Add cgi-bin example as doc
* Fri Apr 10 2026 Arnaud G. GIBERT <arnaud@rx3.net> - 1.1.1-1rx3.mga9
- Update to 1.1.1
* Thu Apr 9 2026 Arnaud G. GIBERT <arnaud@rx3.net> - 1.1.0-1rx3.mga9
- Update to 1.1.0
* Tue Mar 17 2026 Arnaud G. GIBERT <arnaud@rx3.net> - 1.0.0-1rx3.mga9

View File

@@ -27,9 +27,18 @@
# Global Variable
#-----------------------------------------------------------------------------------------------------------------------------------
export MANPATH=$MANPATH:/usr/local/share/man:/usr/global/share/man:/opt/share/man
export CLASSPATH=$CLASSPATH:/usr/local/lib/java:/usr/global/lib/java:/usr/global/lib/java
export XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share:/usr/local/share:/usr/global/share:/opt/share
export HISTSIZE=10000
export HISTFILESIZE=5000
export PAGER=less
export MANPAGER="less -isr"
export EDITOR=emacs
#export GIT_ASKPASS='/usr/bin/ksshaskpass'
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=gasp'
@@ -100,3 +109,4 @@ export -f file_enable
alias ll="ls -la"
alias em="emacs"
alias xw="startx"

View File

@@ -22,11 +22,11 @@
#
#-----------------------------------------------------------------------------------------------------------------------------------
if [[ "${DEFAULT_BASH}" != "" ]]
if [[ "${RX3_BASH_BASE}" != "" ]]
then
return
else
declare -g DEFAULT_BASH=1
declare -g RX3_BASH_BASE=1
fi
@@ -46,11 +46,13 @@ shopt -s extglob
# Global Variable
#-----------------------------------------------------------------------------------------------------------------------------------
declare -g VERSION=""
declare -g NAME=""
declare -g VERSION=""
declare -g DUMP="FALSE"
declare -g DRY_RUN="FALSE"
declare -g HELP=""
declare -g VERBOSE="FALSE"
declare -g DRY_RUN="FALSE"
declare -g LOG_FILE=""
declare -g LOG_LOCK=""
@@ -164,15 +166,21 @@ cmd_exec()
local caller="${FUNCNAME[1]:-MAIN}"
printf '[%s] ' "${caller}" >&2
printf '%s: [%s] ' "${NAME}" "${caller}" >&2
printf '%q ' "$@" >&2
echo >&2
fi
if [[ ${DUMP} == "TRUE" ]]
then
printf '%q ' "$@"
echo
else
if [[ "${DRY_RUN}" != "TRUE" ]]
then
"$@"
fi
fi
}
@@ -196,12 +204,18 @@ sh_exec()
local caller="${FUNCNAME[1]:-MAIN}"
printf '[%s] bash -c %q\n' "${caller}" "$1" >&2
printf '%s: [%s] bash -c %q\n' "${NAME}" "${caller}" >&2
printf 'bash -c %q\n' "${NAME}" "${caller}" "$1" >&2
fi
if [[ ${DUMP} == "TRUE" ]]
then
printf 'bash -c %q\n' "${NAME}" "${caller}" "$1"
else
if [[ "${DRY_RUN}" != "TRUE" ]]
then
bash -c -- "$1" bash
bash -o errexit -o pipefail -o nounset -O extglob -c -- "$1" bash
fi
fi
}
@@ -331,7 +345,7 @@ file_lock()
if ! flock ${flag} -w 5 ${desc}
then
err_echo "Failed to acquire [${mode}] lock on: [${file}]"
echo_error "Failed to acquire [${mode}] lock on: [${file}]"
exit 1
fi
}

View File

@@ -28,7 +28,8 @@
# Includes
#-----------------------------------------------------------------------------------------------------------------------------------
. /usr/lib/rx3/base.bash
: "${RX3_LIB_DIR:=/usr/lib/rx3}"
. "${RX3_LIB_DIR}/base.bash"
@@ -38,9 +39,9 @@
# Global Variables
#-----------------------------------------------------------------------------------------------------------------------------------
declare -g VERSION="1.1.0"
declare -g VERSION="1.1.1"
declare -g NAME="ISL"
declare -g HELP="usage: isl [-a | --add <URL>] | [-c | --cat [-r | --reverse]] | [-d | --dump [-i | --inline] [-r | --reverse]] | [-t | --top [-m | --image]] | [[-h | --help] | [-V | --version] [-T | --test] [-v | --verbose]"
declare -g HELP="usage: isl [-a | --add <URL>] | [-c | --cat [-r | --reverse]] | [-H | --html_dump [-i | --inline] [-r | --reverse]] | [-t | --top [-m | --image]] | [[-h | --help] | [-V | --version] [-T | --test] [-v | --verbose]"
declare -g ISL_FILE="/etc/img_stack_log"
declare -g EXIT_CODE=0
@@ -60,7 +61,7 @@ declare -g URL=""
function isl_args_parse()
{
tmp_args=$(getopt -o a:cdhtVimrTv --long add:,cat,dump,help,top,version,image,inline,reverse,test,verbose -- "$@")
tmp_args=$(getopt -o a:chHtVimrTv --long add:,cat,help,html-dump,top,version,image,inline,reverse,test,verbose -- "$@")
if [ $? != 0 ] ; then echo_error "Terminating..."; exit 1 ; fi
@@ -78,7 +79,7 @@ function isl_args_parse()
# Mode switches
-a|--add) MODE="ADD"; shift; URL="$1"; shift;;
-c|--cat) MODE="CAT"; shift;;
-d|--dump) MODE="DUMP"; shift;;
-H|--html-dump) MODE="HTML-DUMP"; shift;;
-h|--help) MODE="HELP"; shift;;
-t|--top) MODE="TOP"; shift;;
-V|--version) MODE="VERSION"; shift;;
@@ -101,17 +102,17 @@ function isl_args_parse()
else
if [[ "${REVERSE}" == "TRUE" ]]
then
if [[ ( "${MODE}" != "CAT") && ( "${MODE}" != "DUMP") ]]
if [[ ( "${MODE}" != "CAT") && ( "${MODE}" != "HTML-DUMP") ]]
then
echo_error "Reverse option only valid in Cat or Dump mode!"
echo_error "Reverse option only valid in Cat or HTML-Dump mode!"
MODE="HELP"
EXIT_CODE=1
fi
fi
if [[ ( "${INLINE}" == "TRUE") && ( "${MODE}" != "DUMP") ]]
if [[ ( "${INLINE}" == "TRUE") && ( "${MODE}" != "HTML-DUMP") ]]
then
echo_error "Inline option only valid in Dump mode!"
echo_error "Inline option only valid in HTML-Dump mode!"
MODE="HELP"
EXIT_CODE=1
else
@@ -163,12 +164,11 @@ isl_help_print()
isl_print()
{
local inline="$1"
shift
if [[ "${inline}" == "TRUE" ]]
then
shift
str="%s"'\\n'
else
str="%s"'\n'
@@ -210,20 +210,20 @@ isl_add()
ts=$(date -u +"%Y/%m/%d %H:%M:%S")
if [[ ! -e ${ISL_FILE} ]]
if [[ ! -e "${ISL_FILE}" ]]
then
id=1
else
id=$(( $(wc -l <${ISL_FILE}) + 1))
id=$(( $(wc -l <"${ISL_FILE}") + 1))
fi
str="${id} ${ts} ${reg} ${name} ${tag}"
if [[ $id == "1" ]]
then
sh_exec 'echo "${str}" >${ISL_FILE}'
sh_exec "echo \"${str}\" > \"${ISL_FILE}\""
else
cmd_exec sed -i '1i\'"${str}" ${ISL_FILE}
cmd_exec sed -i '1i\'"${str}" "${ISL_FILE}"
fi
}
@@ -242,9 +242,9 @@ isl_cat()
if [[ "${reverse}" == "TRUE" ]]
then
cmd_exec tac ${ISL_FILE}
cmd_exec tac "${ISL_FILE}"
else
cmd_exec cat ${ISL_FILE}
cmd_exec cat "${ISL_FILE}"
fi
}
@@ -310,7 +310,7 @@ isl_top()
local line=""
line=$( head -1 ${ISL_FILE})
line=$( head -1 "${ISL_FILE}")
if [[ "$?" != "0" ]]
then
@@ -320,9 +320,9 @@ isl_top()
then
set ${line}
sh_exec 'echo "$5:$6"'
sh_exec "echo \"$5:$6\""
else
sh_exec 'echo "${line}"'
sh_exec "echo \"${line}\""
fi
fi
}
@@ -372,8 +372,8 @@ case "${MODE}" in
isl_cat "${REVERSE}"
;;
"DUMP")
isl_dump "${REVERSE}" "${INLINE}"
"HTML-DUMP")
isl_html_dump "${REVERSE}" "${INLINE}"
;;
"TOP")

View File

@@ -28,7 +28,8 @@
# Includes
#-----------------------------------------------------------------------------------------------------------------------------------
. /usr/lib/rx3/base.bash
: "${RX3_LIB_DIR:=/usr/lib/rx3}"
. "${RX3_LIB_DIR}/base.bash"
@@ -38,13 +39,11 @@
# Global Variables
#-----------------------------------------------------------------------------------------------------------------------------------
declare -g VERSION="1.0.0"
declare -g VERSION="1.0.2"
declare -g NAME="URPMI Setup"
declare -g HELP="usage: urpmi-setup [ [-d | --distrib <Distrib>] [-m | --mirror-mga <Mirror_List>] [-r | --mirror-rx3 <Mirror_List>] ] | [-h | --help] | [-V | --version] [-T | --test] [-u | --update] [-v | --verbose]"
declare -g HELP="usage: urpmi-setup [ [-d | --distrib <Distrib>] [-m | --mirror-mga <Mirror_List>] [-r | --mirror-rx3 <Mirror_List>] ] | [-h | --help] | [-V | --version] [ [ -D | --dump] | [-T | --test] ] [-u | --update] [-v | --verbose] ) ]"
declare -g DISTRIB_DEF="9"
declare -g MIRRORLIST_MGA_DEF='http://mirror.xor.rx3/mageia/distrib/${DISTRIB}/x86_64 https://mirror.rx3.net/mageia/distrib/${DISTRIB}/x86_64 ftp://ftp.proxad.net/mirrors/mageia.org/distrib/${DISTRIB}/x86_64 http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/${DISTRIB}/x86_64'
declare -g MIRRORLIST_RX3_DEF='http://mirror.xor.rx3/rx3/distrib/${DISTRIB}/x86_64 https://mirror.rx3.net/rx3/distrib/${DISTRIB}/x86_64'
declare -g EXIT_CODE=0
declare -g MODE="DEFAULT"
@@ -57,14 +56,34 @@ declare -g UPDATE="FALSE"
#-----------------------------------------------------------------------------------------------------------------------------------
# MirrorList Init
#-----------------------------------------------------------------------------------------------------------------------------------
function us_mirrorlist_init()
{
if [[ "${MIRRORLIST_MGA}" == "" ]]
then
MIRRORLIST_MGA="http://mirror.xor.rx3/mageia/distrib/${DISTRIB}/x86_64 https://mirror.rx3.net/mageia/distrib/${DISTRIB}/x86_64 ftp://ftp.proxad.net/mirrors/mageia.org/distrib/${DISTRIB}/x86_64 http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/${DISTRIB}/x86_64"
fi
if [[ "${MIRRORLIST_RX3}" == "" ]]
then
MIRRORLIST_RX3="http://mirror.xor.rx3/rx3/distrib/${DISTRIB}/x86_64 https://mirror.rx3.net/rx3/distrib/${DISTRIB}/x86_64"
fi
}
#-----------------------------------------------------------------------------------------------------------------------------------
# US Arg Parse
# Arg Parse
#-----------------------------------------------------------------------------------------------------------------------------------
function us_args_parse()
{
tmp_args=$(getopt -o d:hm:r:Tuv --long distrib:,help,mirror-mga:,mirror-rx3:,test,update,verbose -- "$@")
tmp_args=$(getopt -o d:Dhm:r:Tuv --long distrib:,dump,help,mirror-mga:,mirror-rx3:,test,update,verbose -- "$@")
if [ $? != 0 ] ; then echo_error "Terminating..."; exit 1 ; fi
@@ -84,6 +103,7 @@ function us_args_parse()
-V|--version) MODE="VERSION"; shift;;
# Global options
-D|--dump) DUMP="TRUE"; shift;;
-T|--test) DRY_RUN="TRUE"; shift;;
-u|--update) UPDATE="TRUE"; shift;;
-v|--verbose) VERBOSE="TRUE"; shift;;
@@ -94,19 +114,19 @@ function us_args_parse()
esac
done
if [[ ( "${DUMP}" == "TRUE" ) && ( "${DRY_RUN}" == "TRUE" ) ]]
then
echo_error "Dump cannot be enabled with Test!"
MODE="HELP";
EXIT_CODE=1
else
if [[ ${DISTRIB} == "" ]]
then
DISTRIB=${DISTRIB_DEF}
fi
if [[ "${MIRRORLIST_MGA}" == "" ]]
then
eval MIRRORLIST_MGA=\"${MIRRORLIST_MGA_DEF}\"
fi
if [[ "${MIRRORLIST_RX3}" == "" ]]
then
eval MIRRORLIST_RX3=\"${MIRRORLIST_RX3_DEF}\"
us_mirrorlist_init
fi
}
@@ -115,7 +135,7 @@ function us_args_parse()
#-----------------------------------------------------------------------------------------------------------------------------------
# US Version Print
# Version Print
#-----------------------------------------------------------------------------------------------------------------------------------
us_version_print()
@@ -128,7 +148,7 @@ us_version_print()
#-----------------------------------------------------------------------------------------------------------------------------------
# US Help Print
# Help Print
#-----------------------------------------------------------------------------------------------------------------------------------
us_help_print()
@@ -169,7 +189,7 @@ esac
echo_error "${NAME}: Mode: [${MODE}] Verbose: [${VERBOSE}] Dry_Run: [${DRY_RUN}] Distrib: [${DISTRIB}] MirrorList_MGA: [${MIRRORLIST_MGA}] MirrorList_RX3: [${MIRRORLIST_RX3}] Update: [${UPDATE}]"
echo_error "${NAME}: Mode: [${MODE}] Verbose: [${VERBOSE}] Dump: [${DUMP}] Dry_Run: [${DRY_RUN}] Distrib: [${DISTRIB}] MirrorList_MGA: [${MIRRORLIST_MGA}] MirrorList_RX3: [${MIRRORLIST_RX3}] Update: [${UPDATE}]"
cmd_exec urpmi.removemedia -a
cmd_exec rm -f /var/cache/urpmi/mirrors.cache
@@ -182,7 +202,7 @@ do
do
for type in "Release" "Updates"
do
cmd_exec urpmi.update --no-ignore "${media}" "${arch}${type}"
cmd_exec urpmi.update --no-ignore "${media} ${arch}${type}"
done
done
done

View File

@@ -0,0 +1,61 @@
#!/bin/bash
#-----------------------------------------------------------------------------------------------------------------------------------
#
# URPMI Setup CGI
#
# Copyright (C) 2026 Arnaud G. GIBERT
# mailto:arnaud@rx3.net
#
# This is free software: you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 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, see
# <https://www.gnu.org/licenses/>.
#
#-----------------------------------------------------------------------------------------------------------------------------------
#-----------------------------------------------------------------------------------------------------------------------------------
# Includes
#-----------------------------------------------------------------------------------------------------------------------------------
: "${RX3_LIB_DIR:=/usr/lib/rx3}"
. "${RX3_LIB_DIR}/docker_tools.bash"
#-----------------------------------------------------------------------------------------------------------------------------------
# Main
#-----------------------------------------------------------------------------------------------------------------------------------
echo "Content-type: text/plain"
echo ""
if [[ -n "${QUERY_STRING}" ]]
then
if [[ "$QUERY_STRING" =~ ^[a-z0-9]+$ ]]
then
DISTRIB_OPT="-d ${QUERY_STRING}"
else
echo "Error: Invalid characters in query string."
exit 1
fi
else
DISTRIB_OPT=""
fi
urpmi-setup -v -D ${DISTRIB_OPT}