Discussion:
[Audacity-devel] Signed MacOSX Audacity build
James Crook
2016-12-04 16:43:30 UTC
Permalink
I've shared a signed Audacity build with Gale, just to get some sense of
what is OK/Broken when signing is enabled.
I'm still learning about signing, so the below can and probably will be
streamlined later.

patched wxwidgets was built with xcode 6.4 then I upgraded to xcode 8.1 for building Audacity.
Like Cliff I haven't yet figured out how to build wxWidgets 3.0.2 with xcode 8.1.

signed the wxwidgets release dynlibs using
codesign -s <identity> -v wx*.dynlib
Not sure if that is essential, as the codesign --deep done later may take
care of that.

In the mac build_dist.sh script, I commented out the last line:
#rm -rf ${DMG} TMP.dmg
so that after building, I would have a read/write dmg that I could tweak.

Then:
xcodebuild -clean -build CODE_SIGNING_REQUIRED=NO CODE_SIGNING_IDENTITY=""
-configuration Release install
The disabling of codesigning is because I'd previously set up xcode gui to codesign,
and once you've done that xcode does not like to remove that step - even if you remove identities from it
and try to set codesigning none. I've seen comments about xcode having a cache of identities,
but don't think it was that.

The build creates the TMP.dmg


hdiutil resize -size 200m TMP.dmg
This step is needed as codesigning takes some temporary space, more than is available in the dmg.

mount the dmg
codesign --deep -s <identity> -v "/Volumes/Audacity 2.1.3/Audacity/Audacity.app"
(deep to make sure everything important is signed)
spctl -a -v "/Volumes/Audacity 2.1.3/Audacity/Audacity.app"
(this is to check the signing was OK)
unmount the dmg

hdiutil convert TMP.dmg -format UDZO -imagekey zlib-level=9 -o "Newname.dmg"

codesign -s <identity> -v Newname.dmg
(not even sure if this is needed at all, once the app is signed)

To test the signing, upload the dmg to dropbox and then download it again. Then double click to
install and drag across to apps. When you go to run, you now get this rather than being prevented
from running...






--James.
Paul Licameli
2016-12-04 19:21:05 UTC
Permalink
Peter, where are getting your Mac builds, which seem to lack my wxWidgets
changes?
James, are you certain that you build with those?

The simple diagnostic is whether you can see focus rings around pushbuttons
and other controls in effects dialogs as you repeately hit the tab key.

PRL
Post by James Crook
I've shared a signed Audacity build with Gale, just to get some sense of
what is OK/Broken when signing is enabled.
I'm still learning about signing, so the below can and probably will be
streamlined later.
patched wxwidgets was built with xcode 6.4 then I upgraded to xcode 8.1 for building Audacity.
Like Cliff I haven't yet figured out how to build wxWidgets 3.0.2 with xcode 8.1.
signed the wxwidgets release dynlibs using
codesign -s <identity> -v wx*.dynlib
Not sure if that is essential, as the codesign --deep done later may take
care of that.
#rm -rf ${DMG} TMP.dmg
so that after building, I would have a read/write dmg that I could tweak.
xcodebuild -clean -build CODE_SIGNING_REQUIRED=NO CODE_SIGNING_IDENTITY=""
-configuration Release install
The disabling of codesigning is because I'd previously set up xcode gui to codesign,
and once you've done that xcode does not like to remove that step - even if you remove identities from it
and try to set codesigning none. I've seen comments about xcode having a cache of identities,
but don't think it was that.
The build creates the TMP.dmg
hdiutil resize -size 200m TMP.dmg
This step is needed as codesigning takes some temporary space, more than is available in the dmg.
mount the dmg
codesign --deep -s <identity> -v "/Volumes/Audacity 2.1.3/Audacity/Audacity.app"
(deep to make sure everything important is signed)
spctl -a -v "/Volumes/Audacity 2.1.3/Audacity/Audacity.app"
(this is to check the signing was OK)
unmount the dmg
hdiutil convert TMP.dmg -format UDZO -imagekey zlib-level=9 -o "Newname.dmg"
codesign -s <identity> -v Newname.dmg
(not even sure if this is needed at all, once the app is signed)
To test the signing, upload the dmg to dropbox and then download it again. Then double click to
install and drag across to apps. When you go to run, you now get this rather than being prevented
from running...
--James.
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
audacity-devel mailing list
https://lists.sourceforge.net/lists/listinfo/audacity-devel
James Crook
2016-12-04 19:52:38 UTC
Permalink
Post by Paul Licameli
Peter, where are getting your Mac builds, which seem to lack my wxWidgets
changes?
Not from me as I've not been distributing builds. (Except for one,
today, to Gale only).
Post by Paul Licameli
James, are you certain that you build with those?
I thought I did. I am using (or thought I was)
https://github.com/JamesCrook/wxWidgets/commits/AudacityPatched3.0.2
Post by Paul Licameli
The simple diagnostic is whether you can see focus rings around pushbuttons
and other controls in effects dialogs as you repeately hit the tab key.
Focus rings around data entry fields, but not around anything else, so I
guess I am not.

Still, 8.1 is now compiling wxWidgets for me, so I can fetch and rebuild.
Thanks for the diagnostic for correct patches applied.

--James.
Peter Sampson
2016-12-04 22:51:31 UTC
Permalink
Hi Paul,
Post by Paul Licameli
Peter, where are getting your Mac builds, which seem to lack my wxWidgets
changes?

I follow the path through the Audacity Website onto the Download MAc page

Thers is is link there for nightlies which takes me to this page:
http://wiki.audacityteam.org/wiki/Nightly_Builds#mac
in the Wiki

which in turn leads me to:
http://www.audacity.homerow.net/index.php?dir=mac/&sort=m_time&sort_mode=d

which led me to getting the latest nightly build here:
http://www.audacity.homerow.net/index.php?dir=mac/audacity-nightly-2016.12.04-06.00-ba263d0/

I know no other way ...

Peter.
Post by Paul Licameli
Peter, where are getting your Mac builds, which seem to lack my wxWidgets
changes?
James, are you certain that you build with those?
The simple diagnostic is whether you can see focus rings around
pushbuttons and other controls in effects dialogs as you repeately hit the
tab key.
PRL
Post by James Crook
I've shared a signed Audacity build with Gale, just to get some sense of
what is OK/Broken when signing is enabled.
I'm still learning about signing, so the below can and probably will be
streamlined later.
patched wxwidgets was built with xcode 6.4 then I upgraded to xcode 8.1 for building Audacity.
Like Cliff I haven't yet figured out how to build wxWidgets 3.0.2 with xcode 8.1.
signed the wxwidgets release dynlibs using
codesign -s <identity> -v wx*.dynlib
Not sure if that is essential, as the codesign --deep done later may take
care of that.
#rm -rf ${DMG} TMP.dmg
so that after building, I would have a read/write dmg that I could tweak.
xcodebuild -clean -build CODE_SIGNING_REQUIRED=NO CODE_SIGNING_IDENTITY=""
-configuration Release install
The disabling of codesigning is because I'd previously set up xcode gui to codesign,
and once you've done that xcode does not like to remove that step - even if you remove identities from it
and try to set codesigning none. I've seen comments about xcode having a cache of identities,
but don't think it was that.
The build creates the TMP.dmg
hdiutil resize -size 200m TMP.dmg
This step is needed as codesigning takes some temporary space, more than is available in the dmg.
mount the dmg
codesign --deep -s <identity> -v "/Volumes/Audacity 2.1.3/Audacity/Audacity.app"
(deep to make sure everything important is signed)
spctl -a -v "/Volumes/Audacity 2.1.3/Audacity/Audacity.app"
(this is to check the signing was OK)
unmount the dmg
hdiutil convert TMP.dmg -format UDZO -imagekey zlib-level=9 -o "Newname.dmg"
codesign -s <identity> -v Newname.dmg
(not even sure if this is needed at all, once the app is signed)
To test the signing, upload the dmg to dropbox and then download it again. Then double click to
install and drag across to apps. When you go to run, you now get this rather than being prevented
from running...
--James.
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
audacity-devel mailing list
https://lists.sourceforge.net/lists/listinfo/audacity-devel
------------------------------------------------------------
------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
audacity-devel mailing list
https://lists.sourceforge.net/lists/listinfo/audacity-devel
Loading...