From b477cae6a1f05eb0f562c8f9294ec3db4c3d1be2 Mon Sep 17 00:00:00 2001 From: Yuta SATOH Date: Thu, 7 Dec 2017 22:14:27 +0900 Subject: automatic_updater.sh: updated. It targets 11.1. --- scripts/automatic_updater.sh | 165 ++++++++++++++++++++++++++++++++----------- 1 file changed, 122 insertions(+), 43 deletions(-) (limited to 'scripts') diff --git a/scripts/automatic_updater.sh b/scripts/automatic_updater.sh index 3f1b639..2afa6f6 100755 --- a/scripts/automatic_updater.sh +++ b/scripts/automatic_updater.sh @@ -1,9 +1,13 @@ #/bin/bash set -eu REMOVEPERL=${REMOVEPERL:-0} +PORTDIR="/usr/portage" +DISTDIR="${PORTDIR}/distfiles" +PORTAGE_TMPDIR="/var/tmp" if [[ $# -ne 2 ]] ; then - echo "need 2 argument" + echo "Two arguments are required." + echo "" echo "arg 1: TARGETVER" echo "arg 2: TARGETMODE, Please set kernel, freebsd_userland, world." exit 1 @@ -13,9 +17,12 @@ else fi set_profile(){ - emerge --info | head -n 1 | grep clang && : + echo "Setting the ${TARGETVER} profile..." + + emerge --info | head -n 1 | grep clang &>/dev/null && : if [[ $? -eq 0 ]] ; then eselect profile set $(eselect profile list | grep "${TARGETVER}" | grep clang | awk '{print $1}' | sed 's:\[::g' | sed 's:\]::g' | tail -n 1) + export CXX="clang++ -stdlib=libc++" else eselect profile set $(eselect profile list | grep "${TARGETVER}" | grep -v clang | awk '{print $1}' | sed 's:\[::g' | sed 's:\]::g' | tail -n 1) fi @@ -24,25 +31,56 @@ set_profile(){ move_makeconf(){ [[ ! -e /etc/portage ]] && mkdir -p /etc/portage if [[ -e /etc/make.conf ]] && [[ ! -e /etc/portage/make.conf ]] ; then - mv /etc/make.conf /etc/portage/make.conf + echo "Moving the /etc/make.conf to /etc/portage..." + mv /etc/make.conf /etc/portage fi gsed -i '/LDFLAGS=/d' /etc/portage/make.conf + if [[ -e /etc/make.profile ]] && [[ ! -e /etc/portage/make.profile ]] ; then + echo "Creating the make.profile..." + ln -s ../..${PORTDIR}profiles/$(eselect profile list | grep '*' | awk '{print $2}') /etc/portage/make.profile + fi } update_portage(){ - local dl_portage_ver="2.2.20.1" + local dl_portage_ver="2.3.8" + + echo "Updating the sys-apps/portage with a manual method..." + cd /tmp - wget http://dev.gentoo.org/~dolsen/releases/portage/portage-${dl_portage_ver}.tar.bz2 - tar xjf portage-${dl_portage_ver}.tar.bz2 - PYTHON_TARGETS="python2_7" "portage-${dl_portage_ver}"/bin/emerge --nodeps dev-lang/python-exec + if [[ -e "${DISTDIR}"/portage-${dl_portage_ver}.tar.bz2 ]] ; then + cp -a "${DISTDIR}/portage-${dl_portage_ver}.tar.bz2" . + else + wget -q "http://dev.gentoo.org/~dolsen/releases/portage/portage-${dl_portage_ver}.tar.bz2" + fi + + tar xjf "portage-${dl_portage_ver}.tar.bz2" + + cd "/tmp/portage-${dl_portage_ver}" + PYTHON_TARGETS="python2_7" bin/emerge --nodeps dev-lang/python-exec eselect python set 1 - "portage-${dl_portage_ver}"/bin/emerge sys-apps/portage --exclude sys-freebsd/* - emerge dev-lang/python-exec --exclude sys-freebsd/* - emerge app-admin/eselect --exclude sys-freebsd/* + PYTHON_TARGETS="python2_7" bin/emerge --nodeps sys-apps/portage --exclude sys-freebsd/* + eselect python set 1 } +update_bmake(){ + echo "Updating the bmake..." + + [[ -e /usr/local/bin/make ]] && exit 1 + + cd "${PORTDIR}/sys-freebsd/freebsd-ubin" && ebuild $(ls -1 freebsd-ubin-${TARGETVER}*.ebuild | tail -n 1) prepare + cd "${PORTAGE_TMPDIR}"/portage/sys-freebsd/freebsd-ubin-${TARGETVER}*/work/usr.bin/bmake + make + cp -a make /usr/local/bin/ + cd "${PORTDIR}/sys-freebsd/freebsd-ubin" && ebuild $(ls -1 freebsd-ubin-${TARGETVER}*.ebuild | tail -n 1) clean +} + update_minimal(){ + echo "Updating the minimal packages to upgrade the Gentoo/FreeBSD..." + + emerge -u sys-devel/gcc-config --exclude sys-freebsd/* + update_bmake + emerge --nodeps sys-freebsd/freebsd-mk-defs emerge -u '> /etc/portage/profile/package.use.mask echo "sys-libs/libcxxrt abi_x86_32" >> /etc/portage/profile/package.use.mask - emerge -uN sys-libs/libcxx sys-libs/libcxxrt --exclude sys-freebsd/* + USE="internal-glib" emerge -u dev-util/pkgconfig --exclude sys-freebsd/* + USE="-nls" emerge -u cmake --exclude sys-freebsd/* + emerge --nodeps ' /etc/portage/package.unmask/binutils-oldversion + emerge -u ' /dev/null ; then - emerge -u ' /var/db/pkg/sys-freebsd/freebsd-lib-*/RDEPEND + rm /var/db/pkg/sys-freebsd/freebsd-lib-*/*.ebuild + echo "" > /var/db/pkg/dev-libs/glib-*/RDEPEND + echo "" > /var/db/pkg/dev-libs/glib-*/DEPEND + rm /var/db/pkg/dev-libs/glib-*/*.ebuild + rm /var/db/pkg/sys-freebsd/freebsd-libexec-*/*.ebuild } update_freebsd_userland(){ - if [[ $(uname -p) == "amd64" ]] && [[ ! -e /libexec/ld-elf32.so.1 ]] ; then - [[ ! -e /etc/portage/profile ]] && mkdir -p /etc/portage/profile - echo "sys-freebsd/freebsd-libexec abi_x86_32" >> /etc/portage/profile/package.use.mask - fi + echo "Updating the FreeBSD userland..." - emerge -C dev-libs/libelf dev-libs/libexecinfo dev-libs/libiconv sys-process/fuser-bsd && : - CC=gcc CXX=g++ CXXFLAGS="-O2 -pipe" emerge --nodeps sys-freebsd/freebsd-libexec - CC=gcc CXX=g++ CXXFLAGS="-O2 -pipe" USE=build MAKEOPTS=-j1 emerge --nodeps sys-freebsd/freebsd-lib - CC=gcc CXX=g++ CXXFLAGS="-O2 -pipe" USE=build emerge --nodeps sys-freebsd/freebsd-share - [[ -e /etc/portage/profile/package.use.mask ]] && gsed -i '/sys-freebsd\/freebsd-libexec abi_x86_32/d' /etc/portage/profile/package.use.mask + # Fixing the dependence issue: + ls -1 /var/db/pkg/sys-freebsd/freebsd-lib-9.* &>/dev/null && : + [[ $? -eq 0 ]] && fix_dependence_issue - CC=gcc CXX=g++ CXXFLAGS="-O2 -pipe" emerge freebsd-bin freebsd-lib freebsd-libexec freebsd-mk-defs freebsd-pam-modules freebsd-sbin freebsd-share freebsd-ubin freebsd-usbin - if [[ -e /usr/lib/libc++.so ]] ; then - emerge sys-libs/libcxx sys-libs/libcxxrt --exclude sys-freebsd/* - emerge -u sys-devel/llvm sys-devel/clang + [[ -e /usr/share/misc/windrv_stub.c ]] && rm -rf /usr/share/misc/windrv_stub.c + + CC=gcc CXX=g++ CXXFLAGS="-O2 -pipe" USE=build emerge -u freebsd-bin freebsd-lib freebsd-mk-defs freebsd-pam-modules freebsd-sbin freebsd-share freebsd-sources freebsd-ubin freebsd-usbin + emerge freebsd-share + + if type -P clang &> /dev/null ; then + emerge dev-util/re2c + emerge --nodeps '