tenacityteam / tenacity-legacy

THIS REPO IS NOT MAINTAINED ANYMORE. Please see https://codeberg.org/tenacityteam/tenacity for Tenacity, which is maintained.
https://tenacityaudio.org
Other
6.77k stars 257 forks source link

Arch Linux packages #52

Open vincens2005 opened 3 years ago

n0toose commented 3 years ago

Reasonable request, Arch user here too. We will take care of this when we decide on a name and some other things.

FabioLolix commented 3 years ago

I have some experience in AUR pkgbuilds too

n0toose commented 3 years ago

We could also use Audacity's PKGBUILD for that matter, but let's get code out first.

EndlessEden commented 3 years ago

We could also use Audacity's PKGBUILD for that matter, but let's get code out first.

By that point, Arch Team will probably swap. Audacity is not compliant as-is, it violates its own licensing and given they had "many lawyers" but couldnt figure that out, point out clearly they have no cares about it.

fossdd commented 3 years ago

I guess packaging this fork is not that difficult as it using cmake and conon (already in AUR)

mmmaisel commented 3 years ago

I tried to make an aur build of the fork from yonderbread@ (now at https://gitlab.com/yonderbread/audacity) some time ago but without success due to the borked wxwidgets and shared library build.

I always picked up the local build directory as RPATH for all shared libraries which failed namcap, e.g.:

audacity-git E: Insecure RPATH '/home/user/aur/audacity-git/src/foss_audacity/build/bin/Release/lib/audacity' in file ('usr/lib/audacity/modules/mod-script-pipe.so')

This was my PKGBUILD based on https://aur.archlinux.org/packages/audacity-git/ commit 6e7e5f5:

pkgname=audacity-git
pkgver=c549dc717
pkgrel=1
pkgdesc="A program that lets you manipulate digital audio waveforms"
arch=(i686 x86_64)
url="https://github.com/yonderbread/foss_audacity"
license=(GPL3 CCPL)
groups=(pro-audio)
depends=(gtk3 libid3tag libsecret
  lilv lv2 portsmf suil libmad twolame vamp-plugin-sdk jack2 sdl2 libsoxr soundtouch)
makedepends=(git cmake clang sdl2 libsoup libnotify gstreamer gst-plugins-bad-libs
  ffmpeg)
# can't find system lame portmidi
optdepends=('ffmpeg: additional import/export capabilities')
provides=(audacium)
conflicts=(audacity)
source=("git+https://github.com/yonderbread/foss_audacity.git#branch=dev")
sha256sums=('SKIP')

pkgver() {
  cd foss_audacity
  git rev-parse --short HEAD
}

build() {
  mkdir -p foss_audacity/build
  cd foss_audacity/build
  cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_CXX_FLAGS="-fPIC" \
    -DCMAKE_INSTALL_PREFIX=/usr/ \
    -DCMAKE_INSTALL_RPATH=/usr/lib \
    -DwxBUILD_TOOLKIT:STRING=gtk3 \
    -DwxBUILD_SHARED:BOOL=off \
    -Daudacity_use_wxwidgets=local \
    -Daudacity_use_ffmpeg:STRING=loaded \
    ..
  make .
    #-DCMAKE_INSTALL_RPATH=/usr/lib/audacity/
    #-DwxBUILD_MONOLITHIC:BOOL=off
}

package() {
  cd foss_audacity/build
  make DESTDIR="${pkgdir}" install
#  for so in lib/libwx*.so; do
#      cp "$so" ${pkgdir}/usr/lib/audacity/
#  done
}

The "-fPIC" together with the "wxBUILD_SHARED:BOOL=off" build wxwidgets statically and avoids the RPATH issue for the wxwidgets shared libraries.

peepo5 commented 3 years ago

I agree wholeheartedly :+1:

LukeHuckman commented 3 years ago

Ahh, I'm sorry about this but I've already published a PKGBUILD based on the current audacity-git and I didn't notice this issue. Sooo, yeah. https://aur.archlinux.org/packages/tenacity-git/ If anyone wants to co-maintain it, let me know I guess?

caughtquick commented 3 years ago

Ahh, I'm sorry about this but I've already published a PKGBUILD based on the current audacity-git and I didn't notice this issue. Sooo, yeah.

https://aur.archlinux.org/packages/tenacity-git/

If anyone wants to co-maintain it, let me know I guess?

I can help co-maintain the aur package, but hopefully it gets added to the community repo soon

fossdd commented 3 years ago

Ahh, I'm sorry about this but I've already published a PKGBUILD based on the current audacity-git and I didn't notice this issue. Sooo, yeah. https://aur.archlinux.org/packages/tenacity-git/ If anyone wants to co-maintain it, let me know I guess?

I can help co-maintain the aur package, but hopefully it gets added to the community repo soon

I don't think that Arch Linux does add devel AUR packages (-git,..) to their community repo.

So @LukeHuckman do you also can add a tenacity package that would candidate for the community repo?

I would also co-maintain both packages, if you want so. My username there is fossdd

PS: Do not forget: The tenacity package should require manuell "bumping" the versions.

FabioLolix commented 3 years ago

@LukeHuckman I would like to co-maintain, my AUR name is FabioLolix and previous maintainer of audacity-git

I don't think that Arch Linux does add devel AUR packages (-git,..) to their community repo.

Indeed, they will wait some time and several release

nbsp commented 3 years ago

We've contacted the maintainer of the Audacity project on Arch, and they're willing to package the application for us.

fossdd commented 3 years ago

Oh, thats awesome news

LukeHuckman commented 3 years ago

So @LukeHuckman do you also can add a tenacity package that would candidate for the community repo?

I'll add it once there is a proper release on this repo, because from what I can see the "alpha" release isn't exactly ready yet.

I would also co-maintain both packages, if you want so. My username there is fossdd

@LukeHuckman I would like to co-maintain, my AUR name is FabioLolix and previous maintainer of audacity-git

Alright, I'll add you guys as co-maintainers.

ZeroDot1 commented 3 years ago

I just installed the package and tested it, the menu item should be renamed, from Audacity to Tenacity.

fossdd commented 3 years ago

I just installed the package and tested it, the menu item should be renamed, from Audacity to Tenacity.

Done: https://aur.archlinux.org/cgit/aur.git/commit/PKGBUILD?h=tenacity-git&id=a786cfbc7cdad8fdc0acbed6bf4362ae0465a253

b4zz4 commented 3 years ago

build 8c4278 Arch linux

The file exists: /usr/lib/tenacity/modules/mod-script-pipe.so

But that's not working. I use it to synchronize blender with audacity Another thing that happens to me is that I don't show up in Spanish, and it's only available in English

FabioLolix commented 3 years ago

https://github.com/tenacityteam/tenacity/blob/master/BUILDING.md#arch

Any particular reason to prefer wxgtk3-dev-light over wxgtk3-dev-opt ?

LukeHuckman commented 3 years ago

https://github.com/tenacityteam/tenacity/blob/master/BUILDING.md#arch

Any particular reason to prefer wxgtk3-dev-light over wxgtk3-dev-opt ?

I guess it does make things simpler since there's no need to specify the location of the libraries and include folders in the PKGBUILD, not to mention it reportedly fixed the issue with the .desktop file and trying to run it in general without manually setting the library path environment variable.

leio commented 3 years ago

wxgtk3-dev-opt installs into a non-standard location where the runtime linker doesn't find things, nor does it add its paths into ld.so.conf.d to have it find them.

So anything using that package will need to make the consumer look there, which is why you can see talks about a LD_CONFIG_PATH setting in other tickets here at over at Arch side. If it's in /opt on purpose, any consumers of it need to put these paths into its ELF binaries RPATH, which isn't an upstream problem, as it's inflicted from where and how wxgtk3-dev-opt installs things.

I think using wxgtk3-dev-opt in an AUR package can be fine, but that package needs to deal with the RPATH/RUNPATH pecularity then, not fail to launch at runtime. RPATH is basically what LD_CONFIG_PATH env var does, but done at the right level then for the purpose of a package (I consider LD_CONFIG_PATH a hacky workaround). wxgtk3-dev-opt could also get its wx-config script to output the compiler flags to request such a rpath embedded into binaries linking against that wxGTK, I think.

To me it feels like wxgtk3-dev-opt is installing in /opt and not putting things in ld.so.conf.d very much on purpose, as a package you can use to develop your own wxWidgets programs, not for use by other packages. It's even in the package name that it isn't in your usual /usr prefix, but in /opt.

FabioLolix commented 3 years ago

I have emailed the wxgtk3-dev-opt pkgbuild maintainer to add a ld.so.conf.d config and made a pkgbuild (not in the AUR now) that have it

Patches used by wxgtk3-dev-light pkgbuild aren't a hacky workaround either

not for use by other packages. It's even in the package name that it isn't in your usual /usr prefix, but in /opt.

Because installing wxgtk3-dev in /usr will make unusable all packages build with wxgtk3

leio commented 3 years ago

Because installing wxgtk3-dev in /usr will make unusable all packages build with wxgtk3

I'm not sure what you mean. wxGTK-3.0 is fully parallel-installable with wxGTK-3.1 into the same prefix.

Edit: well, yes, with some small patch used by distributions that offer this parallel installing packages (I do in Gentoo, what I see in wxgtk3-dev-light looks nearly identical)

ygabuev commented 2 years ago

Is there any chance of getting a prebuilt package in the repositories in observable future?

FabioLolix commented 2 years ago

Is there any chance of getting a prebuilt package in the repositories in observable future?

After fixed releases will be published; could be likely

LukeHuckman commented 2 years ago

Is there any chance of getting a prebuilt package in the repositories in observable future?

I can use the existing PKGBUILD of the git package as a reference point, but yeah, it's best to wait for 0.1.0 release before considering prebuilt packages.

RandomExplosion commented 2 years ago

Hi guys, quick question regarding the tenacity-git package available on the aur, I have it installed and its failing to update due to local changes to the source code (git error) but i can't figure out where it clones to, I tried clearing the yay cache but i still get the error. Any help pointing me towards the cloned repo would be much appreciated :)

nbsp commented 2 years ago

I use paru, not yay, so I can't check for myself, but from looking around this command should clear all cache:

yay -Sc
nbsp commented 2 years ago

oh, shoot, should've read the message better. sorry!

FabioLolix commented 2 years ago

its failing to update due to local changes to the source code (git error)

@RandomExplosion Would you like to post the error?

nils-van-zuijlen commented 2 years ago

Hi, I'm using pipewire, with pipewire-jack, which conflicts with jack2 but should provides the necessary jack libs. Is it possible to depend on jack rather than jack2? Then the choice is free between all providers of jack.

LukeHuckman commented 2 years ago

I've pushed a new PKGBUILD which depends on jack instead. It should be fine now.

n0toose commented 2 years ago

I've pushed a new PKGBUILD which depends on jack instead. It should be fine now.

Acknowledging that this happened but I am really not sure how to think of it, as jack has been dead for ages and I am really not sure if this is a good direction (even if it happens over a fresh, new, modern compatibility-layer that we've been trying to fix up) for an audio editor that strives to be more modern. I seriously do not know what's the best approach for this.

n0toose commented 2 years ago

Frankly, regarding what I just said, I am not sure if this affects anything or anybody else or just fixes people who also use jack for specific reasons, I'm just spitting words.

nils-van-zuijlen commented 2 years ago

Acknowledging that this happened but I am really not sure how to think of it, as jack has been dead for ages and I am really not sure if this is a good direction (even if it happens over a fresh, new, modern compatibility-layer that we've been trying to fix up) for an audio editor that strives to be more modern. I seriously do not know what's the best approach for this.

On my machine, Blender, Mumble, OBS and FFmpeg at least depend on jack, and Fluidsynth, gst-plugins-good and mpd depend on libjack.so=0-64. In fact, almost all packages listed on https://archlinux.org/packages/extra/x86_64/jack2/ depend on jack or its .so

The jack package by itself is not present in the Arch repository, it is provided by jack2 or pipewire-jack. Pacman asks for which one you want when it is encountered in a dependency/when you ask for it explicitly.

n0toose commented 2 years ago

Thanks much for taking the time to teach me something new, @nils-van-zuijlen. I probably should've really known about this, considering that I normally main Arch and just now remembered of at least one occasion of getting confused when trying to install it, but hey, now I know! :)

FabioLolix commented 2 years ago

The AUR pkgbuild is using https://git.sr.ht/~tenacity/tenacity as source, however that is not in sync with the github repo

https://git.sr.ht/~tenacity/tenacity/log git hash 0665614b8, commit number 13926 on 2021-11-23

Technetium1 commented 2 years ago

Chaotic-AUR is currently building tenacity-git https://github.com/chaotic-aur/packages/issues/1533