diff --git a/scripts/reverse_dependency.sh b/scripts/reverse_dependency.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b2be150309245be72e0859552b5427e4b7d3c63e
--- /dev/null
+++ b/scripts/reverse_dependency.sh
@@ -0,0 +1,226 @@
+#!/bin/bash
+
+set -e
+
+RDEP_FILE=".rdepends_ci/rdepends_ci.yml"
+
+#########Function definitions
+generate_project_line () {
+  local PROJECT_STRING="      project: "
+  #Check that the library is passed as argument
+  if [ $# -eq 0 ]
+  then
+    echo "Generate project line Error: no library specified."
+    exit 1
+  else
+    if [ $# -gt 1 ]
+    then
+      echo "WARNING: Using first argument as library."
+    fi
+  fi
+  
+  #Get project path and generate string
+  local PROJ=( $(apt-cache show $1 | grep Homepage) ) && 
+  {
+    declare -a PROJ
+  } || {
+    echo "${1} not found as package"
+    exit 1 
+  }
+
+  if [ ${#PROJ[@]} -eq 2 ]
+  then
+    tmp=${PROJ[1]#https://gitlab.iri.upc.edu/}
+    PROJECT_STRING="${PROJECT_STRING}${tmp}"
+  else
+    echo "No homepage found for ${1}"
+    exit 1
+  fi
+
+  echo "${PROJECT_STRING}" >> ${RDEP_FILE}
+}
+
+generate_branch_line () {
+  local BRANCH_STRING="      branch: \""
+  
+  if [ $# -eq 0 ]
+  then
+    echo "Generate branch line Error: no library specified."
+    exit 1
+  else
+    if [ $# -gt 1 ]
+    then
+      echo "WARNING: Using first argument as library."
+    fi
+  fi
+
+  # Get version and generate string
+  local VER=( $(apt-cache show $1 | grep Version) ) && 
+  {
+    declare -a VER
+  } || {
+    echo "${1} not found as package"
+    exit 1 
+  }
+
+  if [ ${#VER[@]} -eq 2 ]
+  then
+    BRANCH_STRING="${BRANCH_STRING}${VER[1]}\""
+  else
+    echo "No version found for ${1}"
+    exit 1
+  fi
+
+  echo "${BRANCH_STRING}" >> ${RDEP_FILE}
+
+}
+
+generate_deps_line () {
+  local DEP_STRING="    needs: ["
+
+  #Check that the library is passed as argument
+  if [ $# -eq 0 ]
+  then
+    echo "Generate deps line Error: no library specified."
+    exit 1
+  else
+    if [ $# -gt 1 ]
+    then
+      echo "WARNING: Using first argument as library."
+    fi
+  fi
+
+  # Get dependencies list and generate string
+  local DEP=( $(apt-cache depends $1 | grep -P 'iri-.+-dev') ) && 
+  {
+    declare -a DEP
+  } || {
+    echo "${1} not found as package"
+    exit 1
+  }
+
+  local LAST_DEP_INDEX=$((${#DEP[@]}-1))
+
+  #echo "Last dep index ${LAST_DEP_INDEX}"
+  local FIRST=1
+  for ((j=2;j<${#DEP[@]};j+=2))
+  do
+    for ((k=1;k<${#RDEP[@]};k++))
+    do
+      if [ ${DEP[${j}]} == ${RDEP[${k}]} ]
+      then
+        if [ ${FIRST} -eq 1 ]
+        then
+          DEP_STRING="${DEP_STRING}${DEP[${j}]}"
+          FIRST=0
+        else
+          DEP_STRING="${DEP_STRING}, ${DEP[${j}]}"
+        fi
+      fi
+    done
+    #echo "Updating dependency $[ ${j}/2] ${DEP[${j}]}"
+  done
+
+  DEP_STRING="${DEP_STRING}]"
+
+  echo "${DEP_STRING}" >> ${RDEP_FILE}
+
+}
+
+generate_version_var_line () {
+  local VERSION_VAR_STRING="      TAG_VERSION: \""
+  
+  if [ $# -eq 0 ]
+  then
+    echo "Generate version variable line Error: no library specified."
+    exit 1
+  else
+    if [ $# -gt 1 ]
+    then
+      echo "WARNING: Using first argument as library."
+    fi
+  fi
+
+  # Get version and generate string
+  local VER=( $(apt-cache show $1 | grep Version) ) && 
+  {
+    declare -a VER
+  } || {
+    echo "${1} not found as package"
+    exit 1 
+  }
+
+  if [ ${#VER[@]} -eq 2 ]
+  then
+    local tmp=${VER[1]%.*}
+    local MAJOR=${tmp%.*}
+    tmp=${VER[1]#*.}
+    local MINOR=${tmp%.*}
+    local REV=${tmp#*.}
+    local NEW_REV=$((${REV}+1))
+    local NEW_VER="${MAJOR}.${MINOR}.${NEW_REV}"
+    VERSION_VAR_STRING="${VERSION_VAR_STRING}${NEW_VER}\""
+  else
+    echo "No version found for ${1}"
+    exit 1
+  fi
+
+  echo "${VERSION_VAR_STRING}" >> ${RDEP_FILE}
+}
+################
+
+
+#Check that the library is passed as argument
+if [ $# -eq 0 ]
+then
+  echo "Reverse dependency Error: no library specified."
+  exit 1
+else
+  if [ $# -gt 1 ]
+  then
+    echo "WARNING: Using first argument as library."
+  fi
+fi
+
+#Get reverse dependencies list
+RDEP=( $(apt-cache rdepends iri-$1-dev | grep -P 'iri-.+-dev') ) && 
+{
+  declare -a RDEP
+} || {
+  echo "iri-${1}-dev not found as package"
+  exit 0
+}
+
+# Generate rdependes_ci.yml header
+mkdir -pv .rdepends_ci
+echo "  image: docker.io/labrobotica/labrobotica:latest" > ${RDEP_FILE}
+echo "" >> ${RDEP_FILE}
+echo "  stages:" >> ${RDEP_FILE}
+echo "    - rdepends" >> ${RDEP_FILE}
+echo "" >> ${RDEP_FILE}
+echo "  dummy_job:" >> ${RDEP_FILE}
+echo "    stage: rdepends" >> ${RDEP_FILE}
+echo "    script:" >> ${RDEP_FILE}
+echo "      - echo \"Dummy job done.\"" >> ${RDEP_FILE}
+echo "" >> ${RDEP_FILE}
+
+#Loop for each dependency
+for ((i=1;i<${#RDEP[@]};i++))
+do
+  echo "Generating job for dependency ${i} ${RDEP[${i}]}..." 
+  echo "  ${RDEP[${i}]}:" >> ${RDEP_FILE}
+  echo "    stage: rdepends" >> ${RDEP_FILE}
+  echo "    variables:" >> ${RDEP_FILE}
+  echo "      FROM_RDEPENDS_CI: \"true\"" >> ${RDEP_FILE}
+  generate_version_var_line ${RDEP[${i}]}
+  echo "    trigger:" >> ${RDEP_FILE}
+  echo "      strategy: depend" >> ${RDEP_FILE}
+  generate_project_line ${RDEP[${i}]}
+  generate_branch_line ${RDEP[${i}]}
+  generate_deps_line ${RDEP[${i}]}
+  echo "" >> ${RDEP_FILE}
+done
+
+echo "Number of reverse dependencies $[ ${#RDEP[@]} - 1]"
+
+exit 0
diff --git a/scripts/update_repo.sh b/scripts/update_repo.sh
new file mode 100755
index 0000000000000000000000000000000000000000..360bb1f4f1bfdf8e9cf5b4ae5ba6d797628fd746
--- /dev/null
+++ b/scripts/update_repo.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+set -e
+
+ls ~/packages
+
+for ((i=1;i<10;i++))
+do
+  reprepro -Vb /var/www/html/packages includedeb $2 ~/packages/*$1*.deb &&
+  {
+    echo "Updated ... ${i}"
+    reprepro -b /var/www/html/packages list $2
+    rm -r ~/packages/*$1*.deb
+    exit 0
+  } || {
+    echo "Try another time ... ${i}"
+    sleep 5
+  }
+
+done
+
+exit 1
+