ubuntu / ubuntu-make

Easy setup of common tools for developers on Ubuntu.
GNU General Public License v3.0
1.2k stars 189 forks source link

Support to Debian distro #615

Closed sandhilt closed 4 years ago

sandhilt commented 5 years ago

Hello guys,

I would like to know if there is any possibility of using this amazing tool in any Debian distribution, since Ubuntu is based on it.

LyzardKing commented 5 years ago

Hi, it should work as is.. since most packages have the same name in ubuntu and debian. If there are differences let me know!

sandhilt commented 5 years ago

Hi, it should work as is.. since most packages have the same name in ubuntu and debian. If there are differences let me know!

I have some problem in Debian 10 installing via snap:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:    10
Codename:   buster
$ snap install ubuntu-make --classic
ubuntu-make master from Didier Roche (didrocks) installed
$ snap --version
ERROR: Can't open lsb-release file: [Errno 2] Arquivo ou diretório inexistente: '/etc/lsb-release'
Traceback (most recent call last):
  File "/snap/ubuntu-make/564/lib/python3.6/site-packages/umake/tools.py", line 234, in get_current_ubuntu_version
    with open(settings.LSB_RELEASE_FILE) as lsb_release_file:
FileNotFoundError: [Errno 2] Arquivo ou diretório inexistente: '/etc/lsb-release'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/snap/ubuntu-make/564/bin/umake", line 11, in <module>
    load_entry_point('Ubuntu-Make==19.6+snap3440', 'console_scripts', 'umake')()
  File "/snap/ubuntu-make/564/lib/python3.6/site-packages/umake/__init__.py", line 150, in main
    load_frameworks(force_loading=should_load_all_frameworks(sys.argv))
  File "/snap/ubuntu-make/564/lib/python3.6/site-packages/umake/frameworks/__init__.py", line 423, in load_frameworks
    load_module(module_name, main_category, force_loading)
  File "/snap/ubuntu-make/564/lib/python3.6/site-packages/umake/frameworks/__init__.py", line 338, in load_module
    import_module(module_abs_name)
  File "/snap/ubuntu-make/564/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/snap/ubuntu-make/564/lib/python3.6/site-packages/umake/frameworks/electronics.py", line 168, in <module>
    class Fritzing(umake.frameworks.baseinstaller.BaseInstaller):
  File "/snap/ubuntu-make/564/lib/python3.6/site-packages/umake/frameworks/electronics.py", line 182, in Fritzing
    if get_current_ubuntu_version().split('.')[0] < "18":
  File "/snap/ubuntu-make/564/lib/python3.6/site-packages/umake/tools.py", line 248, in get_current_ubuntu_version
    raise BaseException(message)
BaseException: Can't open lsb-release file: [Errno 2] Arquivo ou diretório inexistente: '/etc/lsb-release'
LyzardKing commented 5 years ago

Could you check the output of /etc/os-release? It seems like that file is more standard than /etc/lsb-release

LyzardKing commented 5 years ago

If you want you can try the debian branch: https://github.com/ubuntu/ubuntu-make/tree/debian

If it works I'll clean it up and merge in master

sandhilt commented 5 years ago

Could you check the output of /etc/os-release? It seems like that file is more standard than /etc/lsb-release

$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
sandhilt commented 5 years ago

If you want you can try the debian branch: https://github.com/ubuntu/ubuntu-make/tree/debian

If it works I'll clean it up and merge in master

How can I build the application to test? Can I use Dockerfile image?

LyzardKing commented 5 years ago

The docker image is only used to run automated tests, and it cannot be used to run the program.

To run it from source you need to install the dependencies.. It should be described in the readme. You can create a virtual environment, or simply apt install the necessary dependencies. https://github.com/ubuntu/ubuntu-make#create-your-own-environment-and-run-from-it the list of dependencies are in debian/control under Depends:

I'll give it a go tomorrow anyway, but let me know if you try

sandhilt commented 5 years ago

I tried this but there are some problems with Python dependencies.

FROM python:3.8.0-buster

RUN mkdir -p /home/test/ubuntu-make
RUN git clone -b debian https://github.com/ubuntu/ubuntu-make.git /home/test/ubuntu-make

WORKDIR /home/test/ubuntu-make

RUN pip install virtualenv

RUN virtualenv --python=python3 --system-site-packages env

RUN apt-get update && apt-get install -yqq \
    apt apt-utils libapt-pkg-dev \
    python3-gi \
    bzr python3-dev \
    && rm -rf /var/lib/apt/lists/*

RUN env/bin/pip install -r requirements.txt
RUN source env/bin/activate && \
    bin/umake
LyzardKing commented 5 years ago

It should work from the debian branch. Not all installers work.. EDIT: try to run apt install python3-apt. That might be failing to build

sandhilt commented 5 years ago

It should work from the debian branch. Not all installers work.. EDIT: try to run apt install python3-apt. That might be failing to build

I edit Dockerfile: https://gist.github.com/SandHilt/798f9e0e07e307ecbb45f0bdb06ec45c

But I have this error in last command:

$ . env/bin/activate && bin/umake
Traceback (most recent call last):
  File "bin/umake", line 27, in <module>
    from umake import main
  File "/home/test/ubuntu-make/umake/__init__.py", line 28, in <module>
    from umake.frameworks import load_frameworks
  File "/home/test/ubuntu-make/umake/frameworks/__init__.py", line 33, in <module>
    from umake.network.requirements_handler import RequirementsHandler
  File "/home/test/ubuntu-make/umake/network/requirements_handler.py", line 22, in <module>
    import apt
ModuleNotFoundError: No module named 'apt'
LyzardKing commented 4 years ago

Did you install python3-apt? That should have fixed this particular issue. The new commit fixes some references..so try that one