Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does anyone want to help write a Gentoo ebuild? #153

Open
zjp opened this issue Aug 3, 2018 · 53 comments
Open

Does anyone want to help write a Gentoo ebuild? #153

zjp opened this issue Aug 3, 2018 · 53 comments

Comments

@zjp
Copy link

zjp commented Aug 3, 2018

Hello,

Because of the fact that Gentoo is lacking some software that can be found in the AUR and since software availability is one of the main drivers that keeps a distro's install base wide, I've been working on an overlay to fill in some of the gaps.

I have part of an ebuild written here in the testing branch of my overlay repo, but I'd like some help writing it since it's the first one I've written "de novo" -- others are cannibalized from dead overlays.

Here is the link:
https://github.com/zjpxshade/gentoo-zjpxshade/blob/testing/x11-misc/oomox/oomox-1.6.1.ebuild

If any are interested, I appreciate the help!

Thank you,

-Z

@actionless
Copy link
Member

so, first of all, which software is missing?

for example for flatpak distribution, where inkscape dep is not available and where spotify plugin doesn't make any sense i've just disabled those two plugins. mb it's something what we can make in the gentoo packaging?

@actionless
Copy link
Member

btw you can add PYTHON_COMPAT 3.6 since that python version is covered by travis

@actionless
Copy link
Member

actionless commented Aug 3, 2018

and also i think the main problem is what you're missing a call to install script, see this usage examples,

arch:
https://github.com/themix-project/oomox/blob/master/packaging/arch/PKGBUILD#L85

ubuntu:
https://github.com/themix-project/oomox/blob/master/packaging/ubuntu/create_ubuntu_package.sh#L16

@actionless
Copy link
Member

also i am trying to write a makefile right now, it should make things even easier for packaging

actionless added a commit that referenced this issue Aug 3, 2018
@actionless
Copy link
Member

actionless commented Aug 3, 2018

now you can use make DESTDIR=..... PREFIX=..... install instead of install.sh script (usage links above updated)

@zjp
Copy link
Author

zjp commented Aug 5, 2018

Still setting up the house. In any case, I'm glad that you mentioned python because I had meant to ask anyway. As for the missing software, none of your dependencies -- for any module/addon/plugin/whathaveyou -- are missing. I was saying that the intent of my overlay is to provide software that hasn't been found on gentoo before, like pywal.

I might have to call the install script but if you look at the pywal ebuild it isn't called... I wonder what makes the difference between needing to call it and not.

@actionless
Copy link
Member

actionless commented Aug 5, 2018

so i think when you will add make DESTDIR=${DESTDIR} install to your current ebuild it gonna work

@actionless
Copy link
Member

actionless commented Aug 5, 2018

i think because pywal is a python library it's being installed using some pre-defined template for python packages in ebuild (https://wiki.gentoo.org/wiki/Project:Python/Eclasses)

but it doesn't make sense to package oomox as standard python package, because python part -- is just a useless gui which depends on plugins

and plugins are not python packages (plugin interfaces, ie oomox_plugin.py are python but it's just an interface for calling some shell script)

@actionless
Copy link
Member

there is also an open discussion about packaging plugins as separate packages:
#129

@zjp
Copy link
Author

zjp commented Aug 5, 2018

I'll make those changes when I can and then get back to you with an update on whether or not the installation was successful and whether the program worked after that. I'll have to keep up-to-date on that thread so that when your move is complete I can update this package. At least on my end it may make more sense to keep those packages under this single installer and use USE flags to call them.

Also, per #73 should Python v3.4 be dropped from PYTHON_COMPAT?

@actionless
Copy link
Member

actionless commented Aug 5, 2018

python 3.4 probably will stay at least til end of the year, so better leave it in the ebuild (the biggest reason i wanna drop it is to use modern type annotations which available starting from 3.5)

@Massimo-B
Copy link

Thanks for this ticket as I was searching for an ebuild. Is the ebuild ready? Can't digest it:

# ebuild oomox-1.6.1.ebuild digest
Error(s) in metadata for 'x11-misc/oomox-1.6.1':
  DEPEND: expected: '(', got: '(sys-devel/bc', token 19
  REQUIRED_USE: malformed syntax: 'spotify? ( || (polkit gksu) ) || ( python_targets_python3_4 python_targets_python3_5 )'

However starting the gui from a repo clone is also failing:

$ ./gui.sh 

** (__main__.py:12070): WARNING **: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
Traceback (most recent call last):
  File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/mb/src/other/oomox/oomox_gui/__main__.py", line 1, in <module>
    from .main import main
  File "/home/mb/src/other/oomox/oomox_gui/main.py", line 17, in <module>
    from .theme_file_parse import read_colorscheme_from_path
  File "/home/mb/src/other/oomox/oomox_gui/theme_file_parse.py", line 1, in <module>
    from .theme_model import THEME_MODEL
  File "/home/mb/src/other/oomox/oomox_gui/theme_model.py", line 4, in <module>
    from .plugin_loader import (
  File "/home/mb/src/other/oomox/oomox_gui/plugin_loader.py", line 46, in <module>
    init_plugins()
  File "/home/mb/src/other/oomox/oomox_gui/plugin_loader.py", line 29, in init_plugins
    os.path.join(plugin_path, "oomox_plugin.py")
  File "/home/mb/src/other/oomox/oomox_gui/helpers.py", line 23, in get_plugin_module
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 674, in exec_module
  File "<frozen importlib._bootstrap_external>", line 780, in get_code
  File "<frozen importlib._bootstrap_external>", line 832, in get_data
FileNotFoundError: [Errno 2] No such file or directory: '/home/mb/src/other/oomox/oomox_gui/../plugins/oomoxify/oomox_plugin.py'
$ python --version
Python 3.6.6

I also tried with a Python 3.5 and 2.7...
The path of that file not found seems to be wrong:

$ find -name oomox_plugin.py
./plugins/icons_archdroid/oomox_plugin.py
./plugins/icons_gnomecolors/oomox_plugin.py
./plugins/import_base16/oomox_plugin.py
./plugins/import_pil/oomox_plugin.py
./plugins/theme_arc/oomox_plugin.py
./plugins/theme_materia/oomox_plugin.py
./plugins/theme_oomox/oomox_plugin.py

By the way, I was looking for a way to adapt Gtk theme colors, found https://github.com/satya164/gtk-theme-config, but that was archived and also the many forks are unmaintained. Then I can change some of the colors, but not some important applications highlight colors or the decoration title bar color. Then I found this oomox which seems to be a sophisticated theme editor.

@actionless
Copy link
Member

actionless commented Aug 10, 2018

in first case it explicitly saying about syntax error in ebuild, nuff said

in second: you're missing oomoxify submodule for some reason but its directory exists (and is blank/have missing files), so either fix the git submodule or completely remove that dir from ./plugins/ (i guess you just skipped the README.md and made normal clone instead of recursive)

and also it's not gonna to work with python 2

@zjp
Copy link
Author

zjp commented Aug 10, 2018

It's on my testing branch for a reason. I'm very new at this, but I thank you for your patience as I finish setting my house up and get back to work on it.

@Jesse-Millwood
Copy link

For what it's worth, I put this together: https://github.com/Jesse-Millwood/oomox-overlay

@actionless
Copy link
Member

@Jesse-Millwood thanks a lot!
i'll add a link to the readme after few other gentoo users with different setups will confirm it works for them

@Jesse-Millwood
Copy link

@Jesse-Millwood thanks a lot!
i'll add a link to the readme after few other gentoo users with different setups will confirm it works for them

Sounds good! I am new to writing ebuilds but "it works on my machine" TM. So if anyone has an issue feel free to open an issue. It basically uses git to grab the repo because then it'll automatically do the recursive fetching for submodules. I don't know if it is necessarily idiomatic gentoo ebuild style since I'm not sure if the version is necessarily locked down for the submodules and I don't have package versions defined. But it does target the 1.11 version.

@actionless
Copy link
Member

i just see what above there were some questionable topics and also i remember how many problems it was while people there trying to write a void-linux ebuild so i suggest at least one pair of eyes just double-check it :-)

i mean i could check if it's buildable under calculate-linux, but i have not enough gentoo background myself to see if the ebuild compliant to USE flags and other gentoo ecosystem packaging traditions

@Massimo-B
Copy link

I tested the ebuild, and it's working. Thank you very much.
However it leaves a huge installation of
530M /opt/oomox/
with all the theme repo involved.
Then it also depended on huge media-gfx/inkscape being built:

 # emerge -atv oomox

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!
 * Manifest not found for '/usr/local/portage/x11-misc/oomox/oomox-1.6.1.ebuild'
[ebuild  N     ] x11-misc/oomox-1.11::oomox-overlay  0 KiB
[ebuild  N     ]  sys-process/parallel-20190122::gentoo  1.752 KiB
[ebuild  N     ]   dev-perl/Devel-Size-0.820.0::gentoo  USE="-test" 72 KiB
[ebuild  N     ]  media-gfx/inkscape-0.92.4::gentoo  USE="cdr dbus exif jpeg lcms nls openmp spell -dia -gnome -imagemagick -inkjar -latex -postscript -static-libs -visio -wpg" PYTHON_TARGETS="python2_7" 31.182 KiB
[ebuild  N     ]   media-gfx/uniconvertor-2.0_pre379-r2::gentoo  PYTHON_TARGETS="python2_7" 1.802 KiB
[ebuild  N     ]   dev-libs/boehm-gc-8.0.4::gentoo  USE="cxx threads -static-libs" ABI_X86="(64) -32 (-x32)" 1.134 KiB
[ebuild  N     ]   media-gfx/potrace-1.15::gentoo  USE="-metric -static-libs" 636 KiB
[ebuild  N     ]   media-gfx/scour-0.36::gentoo  PYTHON_TARGETS="python2_7 python3_6 -python3_4 -python3_5" 90 KiB
[ebuild  N     ]  dev-python/pyyaml-3.13::gentoo  USE="-examples -libyaml" PYTHON_TARGETS="python2_7 python3_6 -pypy -pypy3 -python3_4 -python3_5 -python3_7" 265 KiB
[ebuild  N     ]  dev-python/pystache-0.5.4::gentoo  USE="-test" PYTHON_TARGETS="python2_7 python3_6 -pypy -python3_4 -python3_5" 74 KiB

Total: 10 packages (10 new), Size of downloads: 37.003 KiB

Would you like to merge these packages? [Yes/No] 

@Jesse-Millwood
Copy link

@Massimo-B thank you for testing it out! I was looking at the arch pkgbuild and it depended on inkscape too. Since most other gentoo builds break things up, I'll try to break things up too.
I realize /opt/ probably isn't the best place for everything. Maybe I can make the different themes different iuse flags?

@Jesse-Millwood
Copy link

Also this is my first ebuild I've really shared so if you have any other recommendations, I'd like to hear them.

@actionless
Copy link
Member

actionless commented Mar 11, 2019

arch pkgbuild currently depends on resvg instead of inkscape (both would work but resvg does the job faster)

but i think what resvg is not packaged for gentoo yet

mb it could be the right thing to be addressed by USE-flags or some other sort of option

@Jesse-Millwood
Copy link

It looks like there is some cargo support in gentoo ebuilds, I'll look at making a resvg ebuild and making it an option to use either inkscape or resvg

@ilnanny
Copy link

ilnanny commented May 15, 2019

@Jesse-Millwood thanks ,working .

@actionless
Copy link
Member

actionless commented May 16, 2019

@Jesse-Millwood @ilnanny which link/instructions should i put to the readme?

and thanks a lot for packaging and testing :)

@Jesse-Millwood
Copy link

It still depends on inkscape and I haven't gotten resvg to build in an ebuild yet. I havn't broken things up with the use flags yet either. I got kind of bogged down with resvg and haven't revisited it in a little while.

If you want, you can link to my repo and say the instructions are there and maybe mention that it depends on inkscape and isn't as full featured as the other packaged versions?

@actionless
Copy link
Member

actionless commented May 17, 2019

inkscape the same functional as resvg, just 2-20x times slower when using with oomox

@ilnanny
Copy link

ilnanny commented May 20, 2019

actionless
i used the Jesse-Millwood overlay (I have already installed inkscape because I use it a lot.)


arc-built themes do not work, but they have also removed them from other packages like in void linux, I think it is a question of incompatibility with the arc theme. I do not know . If you are interested you can use the script of Erik Dubois ,Arc Theme Colora, search in erik repo.

@actionless
Copy link
Member

but what the error do you have with oomox arc theme? and if you're using the correct submodule revision or just some random/latest version of arc gtk theme?

@ilnanny
Copy link

ilnanny commented May 21, 2019

warns me that two scripts are missing to correctly export the arc theme. Now I'm on the work computer and I don't have gentoo here. But have you created the ebuild or are you using the overlay?

@actionless
Copy link
Member

mb in ebuild arc revision need to be updated, please try replacing revision to this one:

https://github.com/NicoHood/arc-theme/tree/2e3feaa0451ad45ff40235ea90ffe98588b3f6e0

@ilnanny
Copy link

ilnanny commented May 28, 2019

Thank you @actionless
Now work fine!

@actionless
Copy link
Member

@ilnanny
so, after @Jesse-Millwood will update arc submodule in his ebuild it gonna be good enough for adding link to the readme?

@Jesse-Millwood
Copy link

yeah I'll try and fix the arc-theme thing this week. One of the issues is that the .gitsubmodule points to a branch that doesn't exist in the repo. I'm not entirely sure what the git3 ebuild commands are doing because the commit that the oomox repo is pointing at is correct.

@Jesse-Millwood
Copy link

Actually, I'm updating it to 1.12.2 and the build has gotten farther.

@ilnanny
Copy link

ilnanny commented May 29, 2019

I manually copied the folder downloaded from the new link you posted to me and everything works fine.
But I believe that the version installed on archlinux (git) is more up to date, the first theme concerns Mother's Day, while the version I installed on gentoo, has as its first theme, Valentine's Day. why .?
Can you tell me which output should I post to you to check which is the most updated version ?.@actionless

@ilnanny
Copy link

ilnanny commented May 29, 2019

@Jesse-Millwood now I update the repository and let you know.
do you say I should uninstall the old version to check for proper operation?

@Jesse-Millwood
Copy link

Jesse-Millwood commented May 29, 2019

I just removed the 1.11 ebuild and added the 1.12.2 ebuild.
It did merge on my machine. I am going to have to look at splitting it up though I think in the future as this was reported:

* Final size of build directory: 1034992 KiB (1010.7 MiB)
 * Final size of installed tree:   502368 KiB ( 490.5 MiB)

I think the increased size is because of all of the icon themes, which shouldn't all be included in an ebuild I suppose.

@ilnanny
Copy link

ilnanny commented May 29, 2019

Yes is very big .
...an extraction of the repo update output.
``Readme.org | 1 +
x11-misc/oomox/Manifest | 3 ++-
x11-misc/oomox/oomox-1.11.ebuild | 3 ++-
3 files changed, 5 insertions(+), 2 deletions(-)
=== Sync completed for oomox-overlay
q: Updating ebuild cache for /usr/local/portage/oomox-overlay

@Jesse-Millwood
Copy link

I think an emerge oomox should update it.

I don't see the new one in your sync. In mine I got:

Fast-forward
 x11-misc/oomox/Manifest                                   | 3 ++-
 x11-misc/oomox/{oomox-1.11.ebuild => oomox-1.12.2.ebuild} | 0
 2 files changed, 2 insertions(+), 1 deletion(-)
 rename x11-misc/oomox/{oomox-1.11.ebuild => oomox-1.12.2.ebuild} (100%)
=== Sync completed for oomox-overlay

@ilnanny
Copy link

ilnanny commented May 29, 2019

you're right, I've updated to the new version.
o.t.
this I created with oomox, mixing arc and matter and adjusting openbox by hand. What do you think about it ?
Istantanea-1

@Jesse-Millwood
Copy link

I'll be upset if I don't see that on https://reddit.com/r/unixporn

@ilnanny
Copy link

ilnanny commented May 31, 2019

@actionless
Copy link
Member

all right, so is it working good enough now to put it into readme? :)

@Jesse-Millwood
Copy link

@actionless I would say so.
It could be better in terms of flexibility but right now it pulls in all of the themes so that you can use oomox to it's full extent.

@ilnanny
Copy link

ilnanny commented Jun 1, 2019

work fine now

@actionless
Copy link
Member

@Jesse-Millwood should i just leave a link to https://github.com/Jesse-Millwood/oomox-overlay or also leave some text around it?

@Jesse-Millwood
Copy link

@actionless
You can just leave a link to my repo since that way seems to work.

I'll look at getting it added so the layman tool can use it, then it'll be easier.

@Jesse-Millwood
Copy link

Actually it looks like you'd be able to just do:

layman -o https://raw.github.com/Jesse-Millwood/oomox-overlay/layman.xml -f -a oomox-overlay
emerge --sync
emerge -av oomox

It seemed to work for me but it'd be nice to have some more input

@ilnanny
Copy link

ilnanny commented Jun 8, 2019

required : app-portage/layman

@ilnanny
Copy link

ilnanny commented Jun 8, 2019

@Jesse-Millwood this is output :
root@DellT3500 /home/ilnanny # layman -o https://raw.github.com/Jesse-Millwood/oomox-overlay/layman.xml -f -a oomox-overlay

  • Fetching remote list...

  • Fetch Ok

  • Adding overlay...

  • Exception: Overlay "oomox-overlay" does not exist.

  • CLI: Errors occurred processing action add

  • Exception: Overlay "oomox-overlay" does not exist.

@ilnanny
Copy link

ilnanny commented Jun 8, 2019

while it works correctly with the method indicated in the reade file of your repository.
I just compiled it and installed it on a new Gentoo machine. I tried to expose a theme with arc and the 'curl' method works fine

@actionless
Copy link
Member

ok, i'll better wait til you get a way which would work at least for both of you ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants