LineageOS-MediaTek / android_device_unihertz_jellypro

17 stars 4 forks source link

Build failed, cm-14.1 seems to be outdated #4

Open Val opened 5 years ago

Val commented 5 years ago

I followed instructions from https://github.com/LineageOS-MediaTek/android_device_unihertz_jellypro/blob/cm-14.1/MANUAL.md .

Build fail when running breakfast jellypro, especially when running https://github.com/LineageOS/android_vendor_cm/blob/cm-14.1/vendorsetup.sh script.

It seems that cm-14.1 cannot be found in https://github.com/LineageOS/hudson/blob/master/lineage-build-targets

I tried with a commit published soon after your manual, like this:

sed -e 's/master/19b2b7a3deb84d90b79868c2c2ea901143936463/' -i vendor/cm/vendorsetup.sh

But it's still failing.

Do you plan to update manual or else upgrade to lineage-15.1 ?

SamarV-121 commented 5 years ago

wait I'll update manual for cm-14.1 asap

Val commented 5 years ago

Nice! thank you.

SamarV-121 commented 5 years ago

oh i just checked and everything is fine bro you must have done something wrong

Val commented 5 years ago

You can reproduce what I did: .dockerignore file:

cm-14.1

Dockerfile file:

FROM ubuntu:14.04

RUN apt-get update \
    && apt-get install -y software-properties-common \
    && apt-get clean \
    && apt-get -y autoremove \
    && rm -rf /tmp/* /var/tmp/*

RUN apt-add-repository ppa:openjdk-r/ppa

RUN apt-get update \
    && apt-get install -y \
        bison \
        build-essential \
        ccache \
        coreutils \
        curl \
        flex \
        g++-multilib \
        gcc-multilib \
        git-core \
        gnupg \
        gperf \
        lib32ncurses5-dev \
        lib32readline-gplv2-dev \
        lib32z1-dev \
        libc6-dev \
        libesd0-dev \
        libncurses5-dev \
        libsdl1.2-dev \
        libwxgtk2.8-dev \
        libxml2 \
        libxml2-utils \
        lzop \
        maven \
        ncftp \
        openjdk-8-jdk \
        openjdk-8-jre \
        pngcrush \
        schedtool \
        screen \
        squashfs-tools \
        tmux \
        unzip \
        w3m \
        xsltproc \
        zip \
        zlib1g-dev \
    && apt-get remove -y --purge default-jre-headless openjdk-7-jre-headless \
    && apt-get clean \
    && apt-get -y autoremove \
    && rm -rf /tmp/* /var/tmp/*

RUN curl -sL http://commondatastorage.googleapis.com/git-repo-downloads/repo \
    -o /usr/local/bin/repo \
    && chmod a+rx /usr/local/bin/repo

build.sh file:

#!/bin/bash

set -e

mkdir -p cm-14.1
cd cm-14.1

git config --global user.email 'email@example.com'
git config --global user.name 'git_username'

yes | repo init -u git://github.com/LineageOS/android.git -b cm-14.1

repo sync -c -f -q -j8 \
  --force-sync --no-clone-bundle --no-tags --optimized-fetch --prune

git clone \
  https://github.com/LineageOS-MediaTek/android_device_unihertz_jellypro \
  -b cm-14.1 device/unihertz/jellypro \
  || ( cd device/unihertz/jellypro; git pull; cd - )
git clone \
  https://github.com/LineageOS-MediaTek/android_device_mediatek_common \
  -b cm-14.1 device/mediatek/common \
  || ( cd device/mediatek/common; git pull; cd - )
git clone \
  https://github.com/LineageOS-MediaTek/proprietary_vendor_unihertz \
  -b cm-14.1 vendor/unihertz \
  || ( cd vendor/unihertz; git pull; cd - )

export CCACHE_DIR=./.ccache
ccache -C
export USE_CCACHE=1
export CCACHE_COMPRESS=1
prebuilts/misc/linux-x86/ccache/ccache -M 50G

make clean && make clobber

export ANDROID_JACK_VM_ARGS="\
-Xmx4096m -Xms512m -Dfile.encoding=UTF-8 -XX:+TieredCompilation"
./prebuilts/sdk/tools/jack-admin kill-server || true
./prebuilts/sdk/tools/jack-admin start-server || true

source build/envsetup.sh

breakfast jellypro
make -j$(nproc) bacon | tee build.log

And finaly test.sh file:

#!/bin/sh

docker build . --tag jellypro
docker run --rm -it -v $(pwd):/src:rw -w /src jellypro:latest /bin/bash -l

To reproduce puts both files in the same directory and run test.sh. Then, when inside jellypro:latest container simply run build.sh script.

You'll get an error when including vendor/cm/vendorsetup.sh.