How to build KMix? #16

Κλειστό
ανοίχτηκε 4 έτη πριν από tch · 31 σχόλια
tch σχολίασε 4 έτη πριν
Συνεργάτης

I would like to look into this bug myself, but i cannot build KMix. First it complains about a missing "tde_install_icons" command, and if i remove it, then it complains about a lot of other stuff.

How is this can be done?

I would like to look into [this bug](http://bugs.pearsoncomputing.net/show_bug.cgi?id=2994) myself, but i cannot build KMix. First it complains about a missing "tde_install_icons" command, and if i remove it, then it complains about a lot of other stuff. How is this can be done?
MicheleC σχολίασε 4 έτη πριν
Ιδιοκτήτης

Hi @tch,

you use debian/devuan/ububntu? right?

By the way, this kind of question would be better discussed on the mailing list or on the TDE irc channel rather than open an issue

Hi @tch,<br/> you use debian/devuan/ububntu? right? By the way, this kind of question would be better discussed on the mailing list or on the TDE irc channel rather than open an issue
tch σχολίασε 4 έτη πριν
Συντάκτης
Συνεργάτης

Yes i do.

If i can fix the linked bug in KMix, i will post the patch here.

Yes i do. If i can fix the linked bug in KMix, i will post the patch here.
MicheleC σχολίασε 4 έτη πριν
Ιδιοκτήτης

In that case you can use my scripts from here.

In that case you can use my scripts from [here](https://mirror.git.trinitydesktop.org/gitea/TDE/tde-packaging/src/branch/master/debian/_buildscripts/local/README.txt).
SlavekB σχολίασε 4 έτη πριν
Ιδιοκτήτης

I would like to look into this bug myself, but i cannot build KMix. First it complains about a missing "tde_install_icons" command, and if i remove it, then it complains about a lot of other stuff.

How is this can be done?

The tde_install_icons macro is defined in TDEMacros.cmake, as are many other CMake macros used in TDE CMake builds. Do you have initialized submodules? Do the admin and cmake directories contain any content?

> I would like to look into [this bug](http://bugs.pearsoncomputing.net/show_bug.cgi?id=2994) myself, but i cannot build KMix. First it complains about a missing "tde_install_icons" command, and if i remove it, then it complains about a lot of other stuff. > > How is this can be done? The `tde_install_icons` macro is defined in TDEMacros.cmake, as are many other CMake macros used in TDE CMake builds. Do you have initialized submodules? Do the admin and cmake directories contain any content?
tch σχολίασε 4 έτη πριν
Συντάκτης
Συνεργάτης

@MicheleC:

Can you give me the short version please? Or i really have to download the entire TDE codebase to compile and debug kmix?

@SlavekB:

I have no idea. I just downloaded the tdemultimedia pack, went into the directory kmix and did
mkdir build && cd build && cmake ..

I am not familiar with CMake at all.

@MicheleC: Can you give me the short version please? Or i really have to download the entire TDE codebase to compile and debug kmix? @SlavekB: I have no idea. I just downloaded the tdemultimedia pack, went into the directory kmix and did `mkdir build && cd build && cmake ..` I am not familiar with CMake at all.
SlavekB σχολίασε 4 έτη πριν
Ιδιοκτήτης

I have no idea. I just downloaded the tdemultimedia pack, went into the directory kmix and did
mkdir build && cd build && cmake ..

I am not familiar with CMake at all.

If you downloaded a tarball generated from git, not official tarball, then submodules are not included. If you want to build from the source code from git, you have to do it: git submodule init && git submodule update for submodules to be present.

If you want to build from an existing deb package, you can use apt build-dep tdemultimedia-trinity && apt source tdemultimedia-trinity. This will give you all the necessary dependencies as well as the source code containing the submodules and debian packaging. Then you can use dpkg-buildpackage -b to build in the same way as deb packages are built.

> I have no idea. I just downloaded the tdemultimedia pack, went into the directory kmix and did > `mkdir build && cd build && cmake ..` > > I am not familiar with CMake at all. If you downloaded a tarball generated from git, not official tarball, then submodules are not included. If you want to build from the source code from git, you have to do it: `git submodule init && git submodule update` for submodules to be present. If you want to build from an existing deb package, you can use `apt build-dep tdemultimedia-trinity && apt source tdemultimedia-trinity`. This will give you all the necessary dependencies as well as the source code containing the submodules and debian packaging. Then you can use `dpkg-buildpackage -b` to build in the same way as deb packages are built.
tch σχολίασε 4 έτη πριν
Συντάκτης
Συνεργάτης

I did the following:

git clone https://scm.trinitydesktop.org/gitea/TDE/tdemultimedia
cd tdemultimedia/kmix/
mkdir build && cd build
git submodule init && git submodule update
cmake ..

Nothing has changed. Unknown CMake command "tde_install_icons".

I did the following: ``` git clone https://scm.trinitydesktop.org/gitea/TDE/tdemultimedia cd tdemultimedia/kmix/ mkdir build && cd build git submodule init && git submodule update cmake .. ``` Nothing has changed. `Unknown CMake command "tde_install_icons".`
SlavekB σχολίασε 4 έτη πριν
Ιδιοκτήτης

I did the following:

git clone https://scm.trinitydesktop.org/gitea/TDE/tdemultimedia
cd tdemultimedia/kmix/
mkdir build && cd build
git submodule init && git submodule update
cmake ..

Nothing has changed. Unknown CMake command "tde_install_icons".

And yeah, there are a few things wrong:

  1. Retrieve the submodules before switching to the subfolder.
    git clone https://scm.trinitydesktop.org/gitea/TDE/tdemultimedia
    cd tdemultimedia
    git submodule init && git submodule update
    
  2. Build a directory you need to create at the top level, not just in a subfolder.
    mkdir build && cd build
    
  3. Similar to automake, CMake first initializes configuration and generates the makefiles – this is done in the top-level build folder. At the same time, you need to enter options according to how you want the build configured. For example:
    cmake .. -DBUILD_KMIX=ON -DWITH_ALSA=ON
    
  4. Then you can start build:
    make
    
> I did the following: > ``` > git clone https://scm.trinitydesktop.org/gitea/TDE/tdemultimedia > cd tdemultimedia/kmix/ > mkdir build && cd build > git submodule init && git submodule update > cmake .. > ``` > Nothing has changed. `Unknown CMake command "tde_install_icons".` And yeah, there are a few things wrong: 1. Retrieve the submodules before switching to the subfolder. ``` git clone https://scm.trinitydesktop.org/gitea/TDE/tdemultimedia cd tdemultimedia git submodule init && git submodule update ``` 2. Build a directory you need to create at the top level, not just in a subfolder. ``` mkdir build && cd build ``` 3. Similar to automake, CMake first initializes configuration and generates the makefiles – this is done in the top-level build folder. At the same time, you need to enter options according to how you want the build configured. For example: ``` cmake .. -DBUILD_KMIX=ON -DWITH_ALSA=ON ``` 4. Then you can start build: ``` make ```
tch σχολίασε 4 έτη πριν
Συντάκτης
Συνεργάτης

Thanks, tomorrow i'll try out and try to find the bug.

Thanks, tomorrow i'll try out and try to find the bug.
tch σχολίασε 4 έτη πριν
Συντάκτης
Συνεργάτης

Okay, i found the bug and eliminated it. (Hopefully not by introducing another one.)

KMix handled the entire playback/capture question with a fundamentally broken concept: it - erroneously - assumed that a device can be either a playback or a capture device and since it prioritized the ability to capture in the logical conditioning, hence literally all "hybrid" devices were dissapeared from the playback panel, not just the "Master".

I just had to duplicate the device creating, making both playback and capturing conditional. Also i had to separate the switches and enums too.

I've double checked it, now KMix exactly has the same sliders and switches as ALSAMixer both on the input and output panel.

Handling the capture devices is behind the playback ones, so selecting the correct master channel is also works now.

Patch is here: http://oscomp.hu/depot/mixer_alsa9.diff

Okay, i found the bug and eliminated it. (Hopefully not by introducing another one.) KMix handled the entire playback/capture question with a fundamentally broken concept: it - erroneously - assumed that a device can be either a playback or a capture device and since it prioritized the ability to capture in the logical conditioning, hence literally all "hybrid" devices were dissapeared from the playback panel, not just the "Master". I just had to duplicate the device creating, making both playback and capturing conditional. Also i had to separate the switches and enums too. I've double checked it, now KMix exactly has the same sliders and switches as ALSAMixer both on the input and output panel. Handling the capture devices is behind the playback ones, so selecting the correct master channel is also works now. Patch is here: http://oscomp.hu/depot/mixer_alsa9.diff
MicheleC σχολίασε 4 έτη πριν
Ιδιοκτήτης

Hi @tch,, would you mind creating a PR here on TGW? It would be much easier to work with and it is the way we usually do. LEt me know if you need info on that.

Hi @tch,, would you mind creating a PR here on TGW? It would be much easier to work with and it is the way we usually do. LEt me know if you need info on that.
tch σχολίασε 4 έτη πριν
Συντάκτης
Συνεργάτης

I am currently in the "tdemultimedia" directory, after i executed the commands SlavekB suggested above. The patched "alsa9_mixer.cpp" is in the "kmix" directory, aside from the building, nothing else is touched. What should i do?

I am currently in the "tdemultimedia" directory, after i executed the commands SlavekB suggested above. The patched "alsa9_mixer.cpp" is in the "kmix" directory, aside from the building, nothing else is touched. What should i do?
MicheleC σχολίασε 4 έτη πριν
Ιδιοκτήτης

Here you can see the required steps. You are already registered as a contributor in TGW, so you can start where it says "Create a new branch, ..." and follow from there.

In short, you need to create a branch in tdemultimedia (for example bug/kmix-channels), make the required changes, create a commit (don't forget the -s flag), push the branch to TGW and later create a PR on TGW. All the steps are explained at the link I have posted and we are here in case of necessity.

[Here](https://wiki.trinitydesktop.org/TDE_Gitea_Workspace#To_contribute_code_changes) you can see the required steps. You are already registered as a contributor in TGW, so you can start where it says "Create a new branch, ..." and follow from there.<br/> In short, you need to create a branch in tdemultimedia (for example bug/kmix-channels), make the required changes, create a commit (don't forget the -s flag), push the branch to TGW and later create a PR on TGW. All the steps are explained at the link I have posted and we are here in case of necessity.
SlavekB σχολίασε 4 έτη πριν
Ιδιοκτήτης

The git commit message should mention that this resolves bug 2994. Also branch name could refer to bug number - for example bug/2994/kmix-channels.

The git commit message should mention that this resolves bug 2994. Also branch name could refer to bug number - for example bug/2994/kmix-channels.
tch σχολίασε 4 έτη πριν
Συντάκτης
Συνεργάτης

I've created the branch, but when i try to git push origin HEAD it asks my credentials which are not as the same as here or the other Trinity bugtracker...

I've created the branch, but when i try to `git push origin HEAD` it asks my credentials which are not as the same as here or the other Trinity bugtracker...
MicheleC σχολίασε 4 έτη πριν
Ιδιοκτήτης

What does "git remote -v" gives? trying to figure out if you clone from main server or this server

What does "git remote -v" gives? trying to figure out if you clone from main server or this server
SlavekB σχολίασε 4 έτη πριν
Ιδιοκτήτης

As far as I know, you cloned from scm.trinitydesktop.org, which is a second instance that is read-only. You need to change the address to mirror.git.trinitydesktop.org.

As far as I know, you cloned from scm.trinitydesktop.org, which is a second instance that is read-only. You need to change the address to mirror.git.trinitydesktop.org.
MicheleC σχολίασε 4 έτη πριν
Ιδιοκτήτης

Ah, I see you cloned from main server!
"git clone https://scm.trinitydesktop.org/gitea/TDE/tdemultimedia"

You can try this:

  1. make a copy of your work
  2. git remote rm origin
  3. git remote add origin https://mirror.git.trinitydesktop.org/gitea/TDE/tdemultimedia.git

This should point your remote to TGW and you should be able to use the same credentials you use here.

Ah, I see you cloned from main server! "git clone https://scm.trinitydesktop.org/gitea/TDE/tdemultimedia" You can try this: 1. make a copy of your work 2. git remote rm origin 3. git remote add origin https://mirror.git.trinitydesktop.org/gitea/TDE/tdemultimedia.git This should point your remote to TGW and you should be able to use the same credentials you use here.
MicheleC σχολίασε 4 έτη πριν
Ιδιοκτήτης

if successful, you should see something like this:

git remote -v
origin  https://mirror.git.trinitydesktop.org/gitea/TDE/tdemultimedia.git (fetch)
origin  https://mirror.git.trinitydesktop.org/gitea/TDE/tdemultimedia.git (push)

if successful, you should see something like this: ``` git remote -v origin https://mirror.git.trinitydesktop.org/gitea/TDE/tdemultimedia.git (fetch) origin https://mirror.git.trinitydesktop.org/gitea/TDE/tdemultimedia.git (push) ```
tch σχολίασε 4 έτη πριν
Συντάκτης
Συνεργάτης

mirror.git.trinitydesktop.org worked.

`mirror.git.trinitydesktop.org` worked.
tch σχολίασε 4 έτη πριν
Συντάκτης
Συνεργάτης

Although i cannot create the pull request here. The branch appears in the combobox, but after selecting it nothing happens aside from this message: These branches are equal. There is no need to create a pull request.

Although i cannot create the pull request here. The branch appears in the combobox, but after selecting it nothing happens aside from this message: `These branches are equal. There is no need to create a pull request.`
SlavekB σχολίασε 4 έτη πριν
Ιδιοκτήτης

You pushed the branch, but it doesn't contain any new commit. After creating the branch, you need to do git add and git commit so that your changes can be pushed.

You pushed the branch, but it doesn't contain any new commit. After creating the branch, you need to do git add and git commit so that your changes can be pushed.
tch σχολίασε 4 έτη πριν
Συντάκτης
Συνεργάτης

Thanks. I'm not familiar with git at all.
I added the changed file, commited it, but no change on the website. I cannot do the pull request.

Thanks. I'm not familiar with git at all. I added the changed file, commited it, but no change on the website. I cannot do the pull request.
SlavekB σχολίασε 4 έτη πριν
Ιδιοκτήτης

After creating a commit do you see it in your git log? Did you push the new state of your branch to the server… git push origin HEAD?

After creating a commit do you see it in your `git log`? Did you push the new state of your branch to the server… `git push origin HEAD`?
tch σχολίασε 4 έτη πριν
Συντάκτης
Συνεργάτης

No i didn't, i only did that before commiting. I've created the pull request.

No i didn't, i only did that before commiting. I've created the pull request.
tch σχολίασε 4 έτη πριν
Συντάκτης
Συνεργάτης

Question: Bugfixes are going to the current TDE release or the next one?

Question: Bugfixes are going to the current TDE release or the next one?
SlavekB σχολίασε 4 έτη πριν
Ιδιοκτήτης

The patches are merged primarily into the master branch. The fixes can then be backported to a stable branch. In this case, they will become part of the next release in the stable branch. It will now be R14.0.9.

The patches are merged primarily into the master branch. The fixes can then be backported to a stable branch. In this case, they will become part of the next release in the stable branch. It will now be R14.0.9.
tch σχολίασε 4 έτη πριν
Συντάκτης
Συνεργάτης

I see. Then i will use the patched binaries until the next release. When will 14.0.9 arrive approximately?

I see. Then i will use the patched binaries until the next release. When will 14.0.9 arrive approximately?
SlavekB σχολίασε 4 έτη πριν
Ιδιοκτήτης

The plan is that the build of preliminary packages for R14.0.9 will start at the end of this week – see PSB repository. The final release is scheduled for October.

The plan is that the build of preliminary packages for R14.0.9 will start at the end of this week – see PSB repository. The final release is scheduled for October.
tch σχολίασε 4 έτη πριν
Συντάκτης
Συνεργάτης

Edit: Never mind i found it in the other topic. (https://wiki.trinitydesktop.org/Preliminary_Stable_Builds)

Edit: Never mind i found it in the other topic. (https://wiki.trinitydesktop.org/Preliminary_Stable_Builds)
MicheleC σχολίασε 4 έτη πριν
Ιδιοκτήτης

Fixed by PR #18.

Fixed by PR #18.
MicheleC αυτό το ζήτημα έκλεισε 4 έτη πριν
MicheleC το πρόσθεσε στο R14.0.9 release ορόσημο 4 έτη πριν
Συνδεθείτε για να συμμετάσχετε σε αυτή τη συνομιλία.
Χωρίς Ορόσημο
Χωρίς Αποδέκτη
3 Συμμετέχοντες
Ειδοποιήσεις
Ημερομηνία Παράδοσης

Δεν ορίστηκε ημερομηνία παράδοσης.

Εξαρτήσεις

Δεν έχουν οριστεί εξαρτήσεις.

Αναφορά: TDE/tdemultimedia#16
Φόρτωση…
Δεν υπάρχει ακόμα περιεχόμενο.