You are not logged in.
I was testing an Asus motherboard with onboard WiFi controller (Broadcom BCM4352 802.11ac) just to see if it worked (I normally only use a wired connection on this PC), and surprisingly all went well with the new broadcom-wl driver and patches.
I am using static addresses, so I haven't experienced any of the NetworkManager v1.0.0 DHCP issues many are talking about on the forums, e.g:
https://bbs.archlinux.org/viewtopic.php?id=192910
https://bbs.archlinux.org/viewtopic.php … 7#p1496387
I did, however, have a different issue after the update of NetworkManager to version 1.0.0 when used in combnation with Cinnamon.
I had to connect to wireless via the 'nm-cli' command because the NetworkManager applet would throw an error when I attempted to use its 'Network Settings' menu item. The settings dialog would pop up along with an error dialog that said:
The system network services are not compatible with this version.Also, even though the settings dialog opened, it was crippled (rather than showing WiFi, Wired and Network Proxy, only Network Proxy was visible).
So, not finding any info after searching the forums, I dug through the Cinnamon source code and found the error message in the source for 'cinnamon-control-center'. Turns out that the file, 'cc-network-panel.c', contains a version test for NetworkManager. The relevant code is as follows:
/* is it too new or old */
if (major > 0 || minor > 9 || (minor <= 8 && micro < 992)) {If any portion of that test is true, it triggers the error dialog. Obviously, installing NetworkManager v1.0.0 is going to be a problem where:
major = 1
minor = 0
micro = 0
I'm not really sure I agree with the way the test was written (even aside from the issue with NM 1.x.x versions), but I just wanted to get things working without a major rewrite, so I wrote the following patch without much thought for anything other than adjusting the test for inclusion of major=1 / minor = 0:
diff -aur cinnamon-control-center-2.4.2/panels/network/cc-network-panel.c cinnamon-control-center-2.4.2_new/panels/network/cc-network-panel.c
--- cinnamon-control-center-2.4.2/panels/network/cc-network-panel.c 2014-11-26 16:11:51.000000000 -0500
+++ cinnamon-control-center-2.4.2_new/panels/network/cc-network-panel.c 2015-01-30 00:07:36.000000000 -0500
@@ -1327,7 +1327,8 @@
}
/* is it too new or old */
- if (major > 0 || minor > 9 || (minor <= 8 && micro < 992)) {
+ /* if (major > 0 || minor > 9 || (minor <= 8 && micro < 992)) { */
+ if ((major > 1 && minor > 0) || (major == 0 && minor <= 8 && micro < 992)) {
ret = FALSE;
/* do modal dialog in idle so we don't block startup */The above should work for the NetworkManager versions the Cinnamon developers deemed appropriate PLUS it allows for version 1.0.0 (tested v1.0.0 and v0.9.10.0).
Hopefully, this will be addressed officially in the near future.
PS
I fully expect someone to tell me that I missed one or more forum posts about this issue because I can't believe it hasn't been discussed before now ... especially in light of the other issues with NetworkManager v1.0.0 currently being discussed.
Last edited by MrWeatherbee (2015-03-07 17:54:35)
Offline
You probably want to submit this to the Cinnamon GitHub as a pull request, linking this thread in your description. And when you do, makes sure you mention that you are running ArchLinux (else they'll assume you're using Mint).
Claire is fine.
Problems? I have dysgraphia, so clear and concise please.
My public GPG key for package signing
My x86_64 package repository
Offline
I ran into the same problem today when I moved my work laptop from ubuntu to arch. Downgrading Networkmanager made the cinnamon settings work, however that older version crashes when I connect to openvpn connection. Is there an easy way of applying this patch on a running system?
Offline
How did you downgrade networkmanager?
I downloaded the package from the Rollback Machine and now it fails to load at all
Offline
How did you downgrade networkmanager?
I downloaded the package from the Rollback Machine and now it fails to load at all
If you choose to downgrade NetworkManager, you have to also downgrade related packages libnm-gtk and libnm-glib with matching version numbers. For example, these packages would be required if downgrading NetworkManager to the last 0.9.x version:
networkmanager 0.9.10.0
libnm-gtk 0.9.10.0
libnm-glib 0.9.10.0
Anyway, that's what worked for me when I was testing the patch to make sure it allowed 0.9.x versions of NetworkManager.
Offline
I ran into the same problem today when I moved my work laptop from ubuntu to arch. Downgrading Networkmanager made the cinnamon settings work, however that older version crashes when I connect to openvpn connection. Is there an easy way of applying this patch on a running system?
Not sure what you mean by 'easy way of applying this patch on a running system'? It'd be much harder to apply it to a system that wasn't running. ![]()
The basic steps are the same for any package patch.
- Get a copy of the original PKGBUILD and related files (.install file, other patches, etc.) from ABS or from the Arch packages web portal:
https://projects.archlinux.org/svntogit … rol-center
- Modify the PKGBUILD as necessary (to include the patch, etc.)
- place the patch in the build-folder with PKGBUILD and related files
- run makepkg (as normal user)
- install the new package (as root)
- enjoy
Is that easy enough?
----------
Here's the modified PKGBUILD I used:
# $Id: PKGBUILD 123172 2014-11-27 02:40:19Z faidoc $
# Maintainer: Alexandre Filgueira <alexfilgueira@cinnarch.com>
# Based on gnome-control-center:
# Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Jan de Groot <jgc@archlinux.org>
pkgname=cinnamon-control-center
pkgver=2.4.2
pkgrel=1
pkgdesc="The Control Center for Cinnamon"
arch=('i686' 'x86_64')
depends=('cinnamon-settings-daemon' 'cinnamon-translations' 'cinnamon-menus'
'libgnomekbd' 'network-manager-applet')
optdepends=('gnome-color-manager: for color management tasks')
makedepends=('intltool' 'gnome-common' 'docbook-xsl')
url="https://github.com/linuxmint/cinnamon-control-center"
install=cinnamon-control-center.install
license=('GPL')
options=('!emptydirs')
groups=('aidenir_modified')
source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/cinnamon-control-center/archive/$pkgver.tar.gz"
'networkmanager_version_check.patch')
sha256sums=('7d25193a3cc13c12f22864f3c9a907acfaa616392cb2b7ab4e0624f0d200f188'
'f55eb718462250aeba0e3a29db6b1c2b22697ea9f5b8224c293f5e4823ae75cd')
prepare() {
cd $pkgname-$pkgver
patch -Np1 -i ../networkmanager_version_check.patch
}
build() {
cd $pkgname-$pkgver
./autogen.sh --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var --disable-static \
--enable-systemd \
--disable-update-mimedb
#https://bugzilla.gnome.org/show_bug.cgi?id=656229
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/ func_append compile_command " -Wl,-O1,--as-needed"\n func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
make
}
package() {
cd $pkgname-$pkgver
make DESTDIR="$pkgdir" install
# Remove unused stuff
make -C panels/sound DESTDIR="$pkgdir" uninstall
make -C panels/sound/data DESTDIR="$pkgdir" install
make -C shell DESTDIR="$pkgdir" uninstall-binPROGRAMS uninstall-directoryDATA uninstall-uiDATA
rm "$pkgdir"/usr/share/applications/cinnamon-{control-center,datetime-panel,region-panel,sound-panel}.desktop
rm -R "$pkgdir/etc"
# Fix a warning
chown 102:0 "$pkgdir/usr/share/polkit-1/rules.d"
chmod 700 "$pkgdir/usr/share/polkit-1/rules.d"
}Compare this PKGBUILD to the original, and you'll see that only a few things were added:
groups=('aidenir_modified')The 'groups=' option is used to identify this package as a member of a group of your choosing (I, of course, did not use 'aidenir_modified' for my group, but took the liberty here, as an example, of using your online name. In conjunction with this, you add the same group to the '/etc/pacman.conf' IgnoreGroup option (e.g., IgnoreGroup= aidenir_modified), and this will prevent the unpatched, official 'cinnamon-control-center' package from overwriting your patched package. As soon as the official package is fixed, you can change or override that 'ignore' setting to allow the official package to upgrade your patched package.
source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/cinnamon-control-center/archive/$pkgver.tar.gz"
'networkmanager_version_check.patch')sha256sums=('7d25193a3cc13c12f22864f3c9a907acfaa616392cb2b7ab4e0624f0d200f188'
'f55eb718462250aeba0e3a29db6b1c2b22697ea9f5b8224c293f5e4823ae75cd')The two snippets above simply:
1) add the patch file to the source array;
2) add the sha256 hash of the patch file to the hash array.
When you create your patch file (likely via copy-and-paste from this page), re-calculate the hash and change it in the PKGBUILD if necessary.
prepare() {
cd $pkgname-$pkgver
patch -Np1 -i ../networkmanager_version_check.patch
}Finally, the above snippet adds the 'patch' command to the PKGBUILD's 'prepare()' function.
----
Edit = code alignment
Last edited by MrWeatherbee (2015-02-02 06:45:39)
Offline
Hehe I just meant applying without uninstalling and recompiling cinnamon ![]()
I just started using arch a couple of days ago so I didn't know it was that easy. Thanks for the instructions and the patch (y). Will try it tonight
Edit: Had a slow day at work so I tried applying this patch now, thanks to your great little tutorial it worked without a problem. Thank you very much ![]()
Last edited by aidenir (2015-02-02 13:00:12)
Offline
How did you downgrade networkmanager?
I downloaded the package from the Rollback Machine and now it fails to load at all
I used https://aur.archlinux.org/packages/downgrade/ and just ran downgrade networkmanager and it installed 0.9.something.
Offline
How did you downgrade networkmanager?
For example, these packages would be required if downgrading NetworkManager to the last 0.9.x version:networkmanager 0.9.10.0
libnm-gtk 0.9.10.0
libnm-glib 0.9.10.0
That combination of versions worked also for me.
Offline
@MrWeatherbee have you done a PR with you change?
Offline
Also have this issue. I added a static route for now. A full system upgrade with -Syu did not correct this.
Offline
Merged today:
Offline
I compiled 'cinnamon-control-center' with the new (official) code (which essentially removed the version check) and everything works fine.
Thanks.
Offline
Hmm.
Double Post - Please Delete
Last edited by MrWeatherbee (2015-03-07 17:56:49)
Offline
I compiled 'cinnamon-control-center' with the new (official) code (which essentially removed the version check) and everything works fine.
Thanks.
I compiled with:
git clone https://github.com/linuxmint/cinnamon-control-center
cd cinnamon-control-center
autoreconf -fi
./configure
make
sudo make install
sudo reboot
Didn't work here.
See:
https://github.com/linuxmint/cinnamon-c … r/pull/107
Last edited by degmic71 (2015-03-26 01:32:38)
Offline
No, that's incorrect unless you've installed the rest of Cinnamon the same way.
Now you have files in your filesystem (likely under /usr/local) that aren't tracked by Pacman. Depending on how well you know how to manage this, it might work well or it could lead to a bunch of problems down the road.
Which one does your system use now? Probably the new one you just compiled - /usr/local/bin comes before in your PATH, but then later when you upgrade the rest of Cinnamon you'll be stuck with a random git version of the control center.
Please learn how to use the tools provided by the distribution developers. It's really not hard to write a PKGBUILD and it carries a lot of benefits, like satisfying dependencies and being tracked so you can cleanly and easily uninstall the package later.
Offline
How can I undo this? I should have modified the pkgbuild from Arcg. Ugh.
Offline
You can try to do a
make uninstallin your build directory.
If that doesn't work, which is likely because most project authors (understandably) do not bother creating uninstallation routines in their makefile, you have a couple of choices - both of which will be quite laborous.
The first option would be to check which files are installed where by looking through the makefile. However, if you don't understand what's going on there, head to the second option.
The second option would be to create a package with makepkg and using the same procedure in the PKGBUILD. Then you can compare the contents and manually remove those files from your filesystem.
Enjoy ![]()
Offline
Thank you very much Cedeel
Offline